Java ListSelectionListener双更改值

Java ListSelectionListener双更改值,java,swing,event-handling,jlist,Java,Swing,Event Handling,Jlist,我有一个带有JList和ListSelectionListener的Java类: final JList myList = new JList(); // ... myList.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { System.out.println("selec

我有一个带有JList和ListSelectionListener的Java类:

final JList myList = new JList();

// ...

myList.addListSelectionListener(new ListSelectionListener() {
            public void valueChanged(ListSelectionEvent e) {  
                System.out.println("selected");
            }
});
但产出是有限的

selected
selected
我应该如何更改我的代码,输出应该是一个
选中的

查看

返回此项是否为中的一项 一系列多个事件,其中 改革仍在进行中


当此方法返回false时,仅打印“已选择”。

您需要参考:

列表SelectionEvent上的
getValueIsAdjusting()
来自API:返回这是否是一系列多个事件中的一个,其中仍在进行更改。

请重试

         if(e.getValueIsAdjusting())
      {
          System.out.println("Selected");  
      }

但是,当您使用向上和向下箭头浏览列表时,这会中断。因此,在这种情况下,使用if(!e.getValueIsAdjusting()){System.out.println(“Selected”);}除此之外,它工作得非常好。Chris是对的,它应该有一个
前面,例如getValuesAdjusting()
。虽然其他答案在正确的路径中,但此答案应标记为最佳答案,因为getValuesAdjusting()在上一个事件时将返回false。