[英]Listen JList setSelectedIndex
MyJList myList = new MyJList();
myList.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
if(!e.getValueIsAdjusting()){
System.out.println("Selected!");
}
}
});
。 。 。
class MyList extends JList{
public MyList () {
super();
this.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
this.setSelectedIndex(0);
}
}
當我用鼠標點擊列表項時,我看到消息«選擇!»。
程序啟動時,此消息未顯示,但選擇了項目#0。
你在構造函數中setSelectedIndex
然后,添加SelectionListener
當setSelectedIndex
時......沒有監聽器
這正是應該發生的事情。 valueChanged
僅在用戶選擇項目時調用。 setSelectedIndex
不會調用任何偵聽器。
看看你的代碼順序:
a)創建列表並將索引設置為0
b)添加ListSelectionListener。 自從您添加了偵聽器以來沒有任何更改,因此沒有觸發任何事件。
嘗試添加:
list.setSelectedIndex(1)
添加偵聽器后查看是否觸發了事件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.