1

我正在尝试在我的 ItemListener 中添加一个条件,并且只有在验证了该条件后才会选择该项目,否则我不希望用户能够选择该项目。

如何使项目侦听器上的选择无效?在项目侦听器中进行新选择?那不是无限循环吗?:o

提前非常感谢。这是我的代码:

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!

            }

        }
    }
4

1 回答 1

1

如何使项目侦听器上的选择无效?在项目侦听器中进行新选择?那不是无限循环吗?:o

  • ItemListener从中删除JComboBox,然后调用JComboBox.setSelectedIndex(-1),添加ItemListenerJComboBox(标准和良好实践)

  • 在一个添加侦听器中创建两个无效(标准和良好实践),在第二个中删除侦听器

  • 不要包裹if(e.getStateChange() == ItemEvent.DESELECTED)在里面boolean,阻止代码执行直到重置状态结束

  • 用于if - else_if(e.getStateChange() == ItemEvent.DESELECTED){ .... } else { ... }

于 2013-06-01T15:57:34.150 回答