簡體   English   中英

偵聽JList setSelectedIndex

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM