侦听JList setSelectedIndex

时间:2011-02-25 14:19:31

标签: java swing listener jlist

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);

   }

}

当我用鼠标点击列表项时,我看到消息«Selected!»。

程序启动时,此消息未显示,但选择了项目#0。

3 个答案:

答案 0 :(得分:2)

构造函数中的setSelectedIndex

然后,添加SelectionListener

调用setSelectedIndex时......没有监听器

答案 1 :(得分:0)

这正是应该发生的事情。仅在用户选择项目时调用valueChangedsetSelectedIndex不会调用任何侦听器。

答案 2 :(得分:0)

查看代码的顺序:

a)创建列表并将索引设置为0
b)添加ListSelectionListener。自从你添加了监听器以来没有任何改变,所以没有事件被触发。

尝试添加:

list.setSelectedIndex(1)

添加侦听器后查看是否触发了事件。