Я пытаюсь динамически проверить элемент, выбранный JComboBox, и я хочу отменить изменение выбора, если проверка неверна. Есть ли способ достичь этого?
private ItemListener itemListener = new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
if (true) CANCEL_CHANGE;
}
}
};
Я пытался определить переменную, содержащую старое значение, отменить регистрацию слушателя и выбрать предыдущее состояние вручную, но затем возникает проблема с первым изменением, потому что переменная не инициализирована и невозможно сохранить исходное значение. .
Я также пытался использовать ActionListener, но не нашел способа программно отменить изменение, и мне не нужно событие запуска, тогда нет никаких изменений, но я оцениваю вероятность setSelection вручную, поэтому я возвращаюсь к ItemListener.