Обнаружение изменения состояния JRadioButton

30
задан cgull 15 September 2009 в 01:52
поделиться

2 ответа

Посмотрите на JRadioButton. addItemListener ()

РЕДАКТИРОВАТЬ: Маловероятно, что вы захотите использовать changeListener, поскольку он срабатывает несколько раз за щелчок. ItemListener срабатывает только один раз за клик. См. Здесь

EDIT2: Чтобы расширить это, actionListener на jradioButton будет срабатывать каждый раз, когда пользователь нажимает на него, даже если он уже выбран. Если это то, что вы хотите, хорошо, но меня это раздражает. Я хочу получать уведомления только о том, что он выбран или не выбран.

ChangeListener срабатывает для всех видов вещей, что означает, что ваш слушатель будет получать 5 или более событий за один щелчок. Плохо.

Слушатель элементов будет запускать только , если выбранное или отмененное состояние изменится. Это означает, что пользователь может щелкнуть по нему несколько раз, и он не сработает, если он не изменится. В вашем методе обработчика вам нужно будет иметь блок if , проверяющий состояние SELECTED или DESELECTED , и делать все, что там:

@Override
public void itemStateChanged(ItemEvent e) {
    if (e.getStateChange() == ItemEvent.SELECTED) {
        // Your selected code here.
    }
    else if (e.getStateChange() == ItemEvent.DESELECTED) {
        // Your deselected code here.
    }
}

Это просто работает лучше, потому что вы знаете, что если вы находитесь в методе, тогда переключатель либо только что выбран, либо не выбран, а не то, что пользователь просто нажимает на интерфейс по неизвестной причине.

49
ответ дан 27 November 2019 в 23:59
поделиться

Я полагаю, вы хотите добавить реализацию ChangeListener .

0
ответ дан 27 November 2019 в 23:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: