我有以下代码,我将元素添加到JList
。
DefaultListModel listModel = new DefaultListModel();
listModel.addElement("element1");
listModel.addElement("element2");
listModel.addElement("element3");
list = new JList(listModel);
list.addListSelectionListener(this);
我的代码的另一种方法
DefaultListModel
)和我添加了SortedSet
的元素:( listModel
是public static
变量)
listModel.removeAllElements();
SortedSet<String> keys = new TreeSet<String>(myHashMap.keySet());
Iterator<String> it = keys.iterator();
while (it.hasNext()) {
String key = it.next();
listModel.addElement(key);
//How can i add an addActionListener to every 'key element'
//since the JList list variable is not global ??
}
由于'list'是不是公共静态变量,如何添加动作侦听器 列表模型中的每个列表项?
我尝试使用addListDataListener
,但我认为这不是用于我需要的目的。
答案 0 :(得分:3)
这就是你需要的:
选择时会发生列表选择事件 在列表或表中要么改变要么只是 改变。列表选择事件是从中触发的 实现的对象 ListSelectionModel接口。得到一张桌子 列表选择模型对象,您可以使用其中之一 getSelectionModel方法或 getColumnModel()。getSelectionModel()。
http://docs.oracle.com/javase/tutorial/uiswing/events/listselectionlistener.html
答案 1 :(得分:3)
也许您可以使用List Action中提供的概念。当您双击该项目或使用所选项目上的Enter键时,它将对JList中的项目执行Acton。
或者,如果您只想通过单击鼠标或使用向上/向下箭头键来了解何时选择项目,那么您应该使用ListSelectionListener
。请参阅How to Write a ListSelectionListener。