C'est ça. J'ai besoin de créer un bouton qui permet de sélectionner une option ou si l'utilisateur cliquer sur l'option sélectionnée, désélectionnez l'élément (rien ne sera sélectionné) et, bien sûr, capturer l'événement pour faire quelque chose. P>
5 Réponses :
Ceci montre exactement comment faire ce https://dzone.com/articles/ Boutons à bascule non sélectionnés p>
Juste au cas où Jeff's Link est cassé à l'avenir, voici ce qui est décrit: Vous devez inclure la sous-classe Butongroup pour autoriser une sélection no-sélection et ajouter vos boutons à ce boutongroup.
public class NoneSelectedButtonGroup extends ButtonGroup { @Override public void setSelected(ButtonModel model, boolean selected) { if (selected) { super.setSelected(model, selected); } else { clearSelection(); } } }
Ou une classe intérieure anonyme suffira, par exemple, Butongroup Mygroup = Nouveau bouton ButongRoup () {/ * code de dessus * /}; code>
@Marmkjeronimus Réponse affine ceci pour éviter de nettoyer l'appelant de sélection bouton.Setselected (false) code> sur un Bouton / case à cocher qui n'est pas sélectionné.
capturer l'événement pour faire quelque chose. Faites aussi le ci-dessous.
@Override public void actionPerformed(ActionEvent e) { ((JToggleButton)e.getSource()).setSelected(false); }
solution pour Pre Java 1.6
public class NoneSelectedButtonGroup extends ButtonGroup { private AbstractButton hack; public NoneSelectedButtonGroup() { super(); hack = new JButton(); add(hack); } @Override public void setSelected(ButtonModel model, boolean selected) { super.setSelected(selected ? model : hack.getModel(), true); } }
J'ai remarqué un comportement bizarre lorsque vous faites Je l'ai réparé de cette façon: p> bouton.Setselected (false) code> sur un bouton / case à cocher qui n'est pas sélectionné. Il a tout désélectionné comme si je désélectionné quelque chose.
Cela pourrait ne pas être intuitif pour l'utilisateur. Avez-vous pensé à faire une option pour représenter l'état / le choix qui correspondrait à la désélection?