我正在尝试在ItemListener中添加一个条件,并且只有在条件被验证时才会选择该项,否则我不希望用户能够选择该项。
如何对项目侦听器上的选择无效?在项目监听器中进行新选择?那不是一个无限循环吗? :○
提前多多谢谢。 这是我的代码:
private final class classeComboBoxItemListener implements ItemListener {
@Override
public void itemStateChanged(ItemEvent e) {
try {
if(e.getStateChange() == ItemEvent.DESELECTED)
updateLabelLugares(true, (Classe) e.getItem());
if(e.getStateChange() == ItemEvent.SELECTED)
updateLabelLugares(false, (Classe) e.getItem());
} catch (Exception e1) {
/// HERE I WANT TO INVALIDATE THE SELECTION
/// Returning to the item selected before!
}
}
}
答案 0 :(得分:1)
如何对项目侦听器上的选择无效?做一个新的 项目监听器内的选择?不是一个无限循环? :○
从ItemListener
移除JComboBox
,然后致电JComboBox.setSelectedIndex(-1)
,将ItemListener
添加回JComboBo
x(标准和优秀实践)
在一个添加侦听器中创建两个void(标准和良好实例),在第二个删除侦听器
不要在if(e.getStateChange() == ItemEvent.DESELECTED)
内包裹boolean
,原因是阻止代码执行,直到重置状态结束
将if - else
用于if(e.getStateChange() == ItemEvent.DESELECTED){ .... } else { ... }