[英]How to add listener event to JList elements which are added by DefaultListModel object?
[英]How to add an action Listener in DefaultListModel and not in JList
我有以下代碼,並將元素添加到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 ?? }
由於“列表” 不是公共靜態變量,如何將動作偵聽器添加到listModel中的每個列表項?
我嘗試使用addListDataListener
,但我認為這不是出於我需要的目的。
這是您需要的:
當列表或表中的選擇正在更改或剛剛更改時,將發生列表選擇事件。 從實現ListSelectionModel接口的對象中觸發列表選擇事件。 要獲取表的列表選擇模型對象,可以使用getSelectionModel方法或getColumnModel()。getSelectionModel()。
http://docs.oracle.com/javase/tutorial/uiswing/events/listselectionlistener.html
也許您可以使用List Action中介紹的概念。 當您雙擊該項目或在所選項目上使用Enter鍵時,它將在JList中的項目上執行Acton。
或者,如果您只想單擊鼠標或使用向上/向下箭頭鍵選擇某個項目的時間,則應該使用ListSelectionListener
。 請參見如何編寫ListSelectionListener 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.