Java Swing:清除JList而不触发侦听器

时间:2010-11-12 06:07:25

标签: java swing listener

我的情况如下:每当在列表中进行选择时,我都有一个JList触发搜索(使用ListSelectionListener)。我正在尝试使用list.clearSelection()重置列表中的选择。这个问题是使用clearSelection()会触发监听器,它会调用搜索:不好。

有没有办法清除列表上的选择而没有触发侦听器?这是否暗示我没有正确使用听众?一般情况下,您是否可以在不触发与该元素关联的事件的情况下在Swing UI中更改某些内容?

感谢。

2 个答案:

答案 0 :(得分:4)

阅读How to Write a List Selection Listener上的Swing教程中的部分,了解工作演示。

通常会生成两个事件,一个用于取消选择,另一个用于选择。您应该只在选择某些内容时进行搜索。您还应该能够检查选定的索引,该索引应该是-1以外的其他内容。

答案 1 :(得分:0)

使用clear()方法清除Jlist时尝试以下模式:

ListObjectName.addListSelectionListener(new ListSelectionListener() {

  public void valueChanged(ListSelectionEvent e) {
    if (!e.getValueIsAdjusting()){
      if(ListObjectName.getSelectedIndex()>-1){
        //Your Code
      }
    }
  }
});