Посмотрите на JRadioButton.addItemListener()
РЕДАКТИРОВАТЬ: Маловероятно, что вы захотите использовать changeListener, поскольку он срабатывает несколько раз за клик. ItemListener срабатывает только один раз за клик. см. здесь
РЕДАКТИРОВАТЬ 2: Просто чтобы расширить это, 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.
}
}
Это просто работает лучше, потому что вы знаете, что если вы находитесь в методе, то переключатель либо только что был выбран, либо не выбран, а не то, что пользователь просто стучит по интерфейсу по какой-то неизвестной причине.
person
Nemi
schedule
15.09.2009