Java ListSelectionListener双更改值
我有一个带有JList和ListSelectionListener的Java类: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
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。