Посмотрите на JRadioButton. addItemListener ()
РЕДАКТИРОВАТЬ: маловероятно, что вы хотите использовать changeListener, так как он запускается несколько раз за клик. ItemListener срабатывает только один раз за клик.
Смотрите здесь
РЕДАКТИРОВАТЬ 2: Просто чтобы расширить это, actionListener на jradioButton будет срабатывать каждый раз, когда пользователь нажимает на него, даже если он уже выбран. если это то, что вы хотите, хорошо, но я нахожу это раздражающим. Я только хочу получать уведомления, если он выбран или отменен.
ChangeListener будет запускаться для всех видов вещей, это означает, что ваш слушатель будет получать 5 или более событий за клик. Не хорошо.
ItemListener будет запускать только , если выбранное или отмененное состояние изменяется. Это означает, что пользователь может щелкнуть по нему несколько раз, и он не сработает, если не изменится. В вашем методе-обработчике вы должны будете иметь блок 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.
}
}
Это просто работает лучше, потому что вы знаете, что если вы находитесь в методе, то радиокнопка была либо просто выбрана, либо отменена, а не то, что пользователь просто стучит по интерфейсу по неизвестной причине.