求助!!如何在Jlist中动态的添加删除项,然后刷新显示? JList中有一个DefaultModel,你可以通过jlist.getModel()来获得这个Model;在Model里面调用remove或者add的API接口就可以实现添加和删除。系统自动的会刷新。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 自己看吧 public JList getJlNo() { if (jlNo == null) { jlNo = new JList(getDeNo()); jlNo.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); jlNo.setFixedCellWidth(140); jlNo.setFixedCellHeight(25); jlNo.setVisibleRowCount(11); jlNo.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2 && e.getButton() == 1) { try { int a = jlNo.getSelectedIndex(); getDeYes().addElement(createData(getJlNo().getSelectedValue(). toString())); getDeNo().removeElementAt(getJlNo().getSelectedIndex()); jlNo.setSelectedIndex(a); } catch (NullPointerException npe) {} } } }); } return jlNo; } public JList getJlYes() { if (jlYes == null) { jlYes = new JList(getDeYes()); //getDe().addElement(); jlYes.setCellRenderer(new CheckListRenderer()); jlYes.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); jlYes.setFixedCellWidth(140); jlYes.setFixedCellHeight(25); jlYes.setVisibleRowCount(11); jlYes.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getButton() == 1) { try { //((JCheckBox)jlYes.getSelectedValue()).setBackground(jlYes.getSelectionBackground()); int index = jlYes.locationToIndex(e.getPoint()); CheckableItem item = (CheckableItem) getDeYes(). getElementAt( index); item.setSelected(!item.isSelected()); Rectangle rect = jlYes.getCellBounds(index, index); jlYes.repaint(rect); } catch (ArrayIndexOutOfBoundsException aie) {} } if (e.getButton() == 1 && e.getClickCount() == 2) { try { getDeNo().addElement(createData(getJlYes().getSelectedValue(). toString())); getDeYes().removeElementAt(getJlYes().getSelectedIndex());// CheckableItem item = (CheckableItem) getJlYes().getSelectedValue();// item.setBackground(true); } catch (NullPointerException npe) { } } } }); } return jlYes; } public DefaultListModel getDeYes() { if (deYes == null) { deYes = new DefaultListModel(); } return deYes; } public DefaultListModel getDeNo() { if (deNo == null) { deNo = new DefaultListModel(); for (int a = 0; a < data.length; a++) { deNo.addElement(data[a]); } } return deNo; } 中间用了个list描绘的东西,你不调用就行了 看上面那么长的代码,我都晕了。做了个简单的给你,有一个添加一个删除,没写事件,你自己弄下吧。其实就是实现listmodel接口的子类。import java.awt.*;import javax.swing.*;class TextAreaapp extends JFrame{ DefaultListModel AM = new DefaultListModel(); JList Jl = new JList(AM); public TextAreaapp() { Container con = this.getContentPane(); con.setLayout(new FlowLayout()); AM.addElement("aa1"); AM.addElement("aa2"); AM.addElement("aa3"); AM.addElement("aa4"); con.add(Jl); AM.removeElement("aa3"); this.setSize(200, 200); this.setVisible(true); } public static void main(String args[]) { new TextAreaapp(); }} 秋前辈解决NumberFormatException: 数字格式化异常 一个IO题目,自己有些拿不准,又没办法试验(在网吧) 关于pdf解析的问题 sqlserver2000 bcp导出数据问题。 请教一个监听键盘事件的问题 菜鸟问题! 我的java为什么不能用啊?急! 请问哪位大虾有用java实现imap协议(mailserver端)的例子?可否给我参考,谢谢! 哪儿有 java api 文档(最好中文)下载? 急~~~~~~~~~ java图形界面的问题 各位帮忙看看 jdk里面有没有直接判断一个数是偶数还是奇数的方法
if (jlNo == null) {
jlNo = new JList(getDeNo());
jlNo.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jlNo.setFixedCellWidth(140);
jlNo.setFixedCellHeight(25);
jlNo.setVisibleRowCount(11);
jlNo.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2 && e.getButton() == 1) {
try {
int a = jlNo.getSelectedIndex();
getDeYes().addElement(createData(getJlNo().getSelectedValue().
toString()));
getDeNo().removeElementAt(getJlNo().getSelectedIndex());
jlNo.setSelectedIndex(a);
}
catch (NullPointerException npe) {}
}
}
});
}
return jlNo;
} public JList getJlYes() {
if (jlYes == null) {
jlYes = new JList(getDeYes());
//getDe().addElement();
jlYes.setCellRenderer(new CheckListRenderer());
jlYes.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jlYes.setFixedCellWidth(140);
jlYes.setFixedCellHeight(25);
jlYes.setVisibleRowCount(11);
jlYes.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getButton() == 1) {
try {
//((JCheckBox)jlYes.getSelectedValue()).setBackground(jlYes.getSelectionBackground());
int index = jlYes.locationToIndex(e.getPoint());
CheckableItem item = (CheckableItem) getDeYes().
getElementAt(
index);
item.setSelected(!item.isSelected());
Rectangle rect = jlYes.getCellBounds(index, index);
jlYes.repaint(rect);
}
catch (ArrayIndexOutOfBoundsException aie) {}
}
if (e.getButton() == 1 && e.getClickCount() == 2) {
try {
getDeNo().addElement(createData(getJlYes().getSelectedValue().
toString()));
getDeYes().removeElementAt(getJlYes().getSelectedIndex());
// CheckableItem item = (CheckableItem) getJlYes().getSelectedValue();
// item.setBackground(true);
}
catch (NullPointerException npe) {
}
}
}
}); }
return jlYes;
} public DefaultListModel getDeYes() {
if (deYes == null) {
deYes = new DefaultListModel();
}
return deYes;
} public DefaultListModel getDeNo() {
if (deNo == null) {
deNo = new DefaultListModel();
for (int a = 0; a < data.length; a++) {
deNo.addElement(data[a]);
}
}
return deNo;
}
做了个简单的给你,有一个添加一个删除,没写事件,你自己弄下吧。
其实就是实现listmodel接口的子类。import java.awt.*;
import javax.swing.*;class TextAreaapp extends JFrame
{
DefaultListModel AM = new DefaultListModel();
JList Jl = new JList(AM);
public TextAreaapp()
{
Container con = this.getContentPane();
con.setLayout(new FlowLayout());
AM.addElement("aa1");
AM.addElement("aa2");
AM.addElement("aa3");
AM.addElement("aa4");
con.add(Jl);
AM.removeElement("aa3");
this.setSize(200, 200);
this.setVisible(true);
}
public static void main(String args[])
{
new TextAreaapp();
}
}