getValueIsAdjusting()在JList中禁用但现在我无法连续两次选择一个选项

时间:2015-12-23 08:44:46

标签: java jlist listselectionlistener

我有一个JList,其中每个选项增加一个变量并做一些其他简单的事情。我的ListSelectionListener使用鼠标在每次选择时运行两次,因此我将条件if(!getValueIsAdjusting())在每次点击选择中仅在侦听器中运行我的代码一次。现在,一旦我选择,例如,选项1它运行良好,但如果我想再次选择此选项没有任何反应。所以基本上我不能连续两次选择相同的选项。 (如果我回到之前选择的选择,没有问题)。欢迎任何解决方案。提前致谢

1 个答案:

答案 0 :(得分:0)

我找到了问题的解决方案,我想与你们分享。 在完成 valueChanged 方法中的内容后,我调用该方法 的 clearSelection()即可。这会将所选索引置于-1。为了处理这个错误,在if条件中我添加了 getSelectedIndex()> = 0 。所以代码:

private class KategoriHandler implements ListSelectionListener{    
public void valueChanged(ListSelectionEvent e) {                if(!e.getValueIsAdjusting()&&kategori.getSelectedIndex()>=0){
//do the stuff;
kategori.clearSelection();}