Отмена изменения выбора в JComboBox, если условие выполнено (например, проверка входящего выбора)

Я пытаюсь динамически проверить элемент, выбранный JComboBox, и я хочу отменить изменение выбора, если проверка неверна. Есть ли способ достичь этого?

private ItemListener itemListener = new ItemListener() {
    @Override                                            
    public void itemStateChanged(ItemEvent e) {
        if (e.getStateChange() == ItemEvent.SELECTED) {
            if (true) CANCEL_CHANGE;
        }
    }
};

Я пытался определить переменную, содержащую старое значение, отменить регистрацию слушателя и выбрать предыдущее состояние вручную, но затем возникает проблема с первым изменением, потому что переменная не инициализирована и невозможно сохранить исходное значение. .

Я также пытался использовать ActionListener, но не нашел способа программно отменить изменение, и мне не нужно событие запуска, тогда нет никаких изменений, но я оцениваю вероятность setSelection вручную, поэтому я возвращаюсь к ItemListener.

6
задан Whimusical 22 May 2012 в 15:45
поделиться