我在jpane的jlist中添加动态值。 当我双击jlist的一个元素时,我想改变该元素的值。
怎么做?
String bigList[] = new String[2];
bigList[0] = "first value";
bigList[1] = "second value";
final JList list = new JList(bigList);
list.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
int index = list.locationToIndex(e.getPoint());
System.out.println("Double clicked on Item " + index);
??????? CHANGEVALUE(index,"MY NEW VALUE); ????????
}
}
});
JOptionPane jpane = new JOptionPane();
jpane.showMessageDialog(null, list, "MYTITLE", JOptionPane.PLAIN_MESSAGE);
答案 0 :(得分:2)
您可以使用DefaultListModel
来实现此目的。 DefaultListModel有方法setElementAt("value " ,index)
。使用此方法,您可以更改双击项的值。
添加此行
d.setElementAt("MY NEW VALUE", index);
会给出您期望的结果。
DefaultListModel d = new DefaultListModel();
d.addElement("first value");
d.addElement("second value");
final JList list = new JList(d);
list.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
int index = list.locationToIndex(e.getPoint());
System.out.println("Double clicked on Item " + index);
//??????? CHANGEVALUE(index,"MY NEW VALUE); ????????
d.setElementAt("MY NEW VALUE", index);
}
}
});
JOptionPane jpane = new JOptionPane();
jpane.showMessageDialog(null, list, "MYTITLE", JOptionPane.PLAIN_MESSAGE);