监听 JList setSelectedIndex

发布于 2024-10-19 05:39:34 字数 566 浏览 6 评论 0原文

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。

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

   }

}

When I click on list item with mouse, I see message «Selected!».

When program start, this message not shown, but item #0 is selected.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

淡淡的优雅 2024-10-26 05:39:34

您在构造函数中 setSelectedIndex

然后,

在调用 setSelectedIndex 时添加 SelectionListener...没有监听器

You setSelectedIndex in the constructor

Then after that, add the SelectionListener

when setSelectedIndex is called...there is no Listener

仙女山的月亮 2024-10-26 05:39:34

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

This is exactly what should happen. valueChanged is only called when the user selects the item. setSelectedIndex does not invoke any listeners.

山人契 2024-10-26 05:39:34

查看代码的顺序:

a) 创建列表并将索引设置为 0
b) 添加 ListSelectionListener。自从您添加侦听器以来,没有任何变化,因此没有事件被触发。

添加监听器后尝试添加:

list.setSelectedIndex(1)

以查看事件是否被触发。

Look at the order of you code:

a) you create the list and set the index to 0
b) you add the ListSelectionListener. Well nothing has changed since you added the listener so no event is fired.

Try adding:

list.setSelectedIndex(1)

after adding the listener to see if the event is fired.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文