Java - ItemListener中的JComboBox Invalidade项目选择

时间:2013-06-01 15:33:39

标签: java selection jcombobox invalidation

我正在尝试在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!

            }

        }
    }

1 个答案:

答案 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 { ... }