我有以下代码,并将元素添加到 JList
中。
DefaultListModel listModel = new DefaultListModel();
listModel.addElement("element1");
listModel.addElement("element2");
listModel.addElement("element3");
list = new JList(listModel);
list.addListSelectionListener(this);
在我的代码的另一种方法中
- 我删除了 listModel(
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'不是公共(public)静态变量,我如何添加 Action 监听器 到 listModel 中的每一项列表项?
我尝试使用 addListDataListener
,但我认为这不能用于我需要的目的。
最佳答案
也许您可以使用 List Action 中提出的概念。当您双击 JList 中的项目或在所选项目上使用 Enter 键时,它将对 JList 中的项目执行 Acton。
或者,如果您只是想知道何时通过单击鼠标或使用向上/向下箭头键选择某个项目,那么您应该使用 ListSelectionListener
。请参阅How to Write a ListSelectionListener .
关于java - 如何在 DefaultListModel 中而不是在 JList 中添加操作监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20846958/