2010-10-24 4 views
1

Я пишу приложение Java, и у меня есть четыре переключателя, назовите их rb1, rb2, rb3 и rb4. Я добавил двух из них в одну группу радиолюбителей, а две другие - на вторую радиостанцию. Затем я добавил все четыре из них на панель. Четкие прослушиватели действий определены для всех четырех кнопок.Анонимность Java Radio Button

Однако, когда я нажимаю на первую кнопку в одной группе, она запускает свой собственный исполнитель действия, а второй - для второй кнопки в другой группе. Эта кнопка, которая срабатывает неправильно, не срабатывает, когда я нажимаю на нее.

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

Заранее благодарим за любую помощь.

Джон Донер

+0

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

+0

нет опечаток в определениях? – Orbit

+1

Я поставил несколько групп кнопок в одном контейнере. Я подозреваю, что вы испортили добавление слушателей действий, а «один для второй кнопки в другой группе» фактически привязан к одному в той же группе. Помните, что когда вы нажимаете на переключатель, вы будете получать два события прослушивания действий, один на выбранной кнопке, а другой на тот, который не выбран. –

ответ

0

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

Двойная проверка ваших слушателей. Убедитесь, что listener4 фактически добавлен в rb4. Вы на самом деле, возможно, сделали это вместо:

rb1.addActionListener(listener1); 
rb2.addActionListener(listener2); 
rb3.addActionListener(listener3); 
rb1.addActionListener(listener4); // NOTE: listener added to rb1 instead of rb4 

Если это то, что случилось, то:

  • Щелкнув на RB1 уволит Listener1 и listener4
  • Кликнув на RB4 бы ничего не делать (не прилагается нет слушателем к нему)

Это похоже на ваши симптомы.

+0

Вы были правы! Удивительно, сколько раз я могу просмотреть свой собственный код и пропустить вопиющую ошибку! Благодарю. –