2010-10-24 15 views
1

J'écris une application Java, et j'ai quatre boutons radio, appelez-les rb1, rb2, rb3, et rb4. J'ai ajouté deux d'entre eux à un groupe de radiobutton, et les deux autres à un second groupe de radio. Ensuite, j'ai ajouté les quatre à un panel. Les écouteurs d'action distincts sont définis pour les quatre boutons. Cependant, lorsque je clique sur le premier bouton d'un groupe, il déclenche son propre écouteur d'action et celui du deuxième bouton dans l'autre groupe. Ce bouton qui se déclenche incorrectement ne se déclenche pas du tout lorsque je clique dessus.Java Radio Button anomalie

Je ne peux que soupçonner qu'ils ne devraient pas tous être dans un panneau, mais cela semble un peu tendu comme une explication. Des idées?

Merci d'avance pour toute aide.

John Doner

+0

Vous devrez peut-être afficher du code. Je ne peux penser à aucune raison pour laquelle l'ajout de tous à un seul panneau causera ce problème. –

+0

pas de faute de frappe dans les définitions? – Orbit

+1

J'ai mis plusieurs groupes de boutons dans le même conteneur. Je soupçonne que vous avez foiré en ajoutant les écouteurs d'action, et le "un pour le deuxième bouton dans l'autre groupe" est en fait attaché à un dans le même groupe. N'oubliez pas que lorsque vous cliquez sur un bouton radio, vous obtenez deux événements d'écoute d'action, un sur le bouton sélectionné et un autre sur celui qui est désélectionné. –

Répondre

0

Il est parfaitement bien pour plusieurs groupes de boutons radio pour vivre dans le même panneau.

Vérifiez vos écouteurs. Vérifiez que listener4 a bien été ajouté à rb4. Vous pouvez réellement avoir fait ceci:

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

Si ce qui est arrivé, alors:

  • En cliquant sur RB1 tireraient listener1 et listener4
  • En cliquant sur RB4 ne ferait rien (pas auditeur attaché à lui)

Qui semble correspondre à vos symptômes.

+0

Vous aviez raison! Incroyable combien de fois je peux revoir mon propre code et manquer une erreur flagrante! Merci. –