javafx
Bouton radio
Recherche…
Création de boutons radio
Les boutons radio permettent à l'utilisateur de choisir un élément parmi ceux donnés. Il existe deux manières de déclarer un RadioButton
avec un texte à côté de lui. Soit en utilisant le constructeur par défaut RadioButton()
et en définissant le texte avec la setText(String)
ou en utilisant l'autre constructeur RadioButton(String)
.
RadioButton radioButton1 = new RadioButton();
radioButton1.setText("Select me!");
RadioButton radioButton2= new RadioButton("Or me!");
Comme RadioButton
est une extension de Labeled
il peut également y avoir une Image
spécifiée pour RadioButton
. Après avoir créé le RadioButton
avec l'un des constructeurs, ajoutez simplement la méthode Image
avec la setGraphic(ImageView)
comme ici:
Image image = new Image("ok.jpg");
RadioButton radioButton = new RadioButton("Agree");
radioButton.setGraphic(new ImageView(image));
Utiliser des groupes sur les boutons radio
Un groupe ToggleGroup
est utilisé pour gérer les ToggleGroup
RadioButton
manière à ce qu’un seul groupe soit sélectionné à chaque fois.
Créez un simple ToggleGroup
comme suit:
ToggleGroup group = new ToggleGroup();
Après avoir créé un groupe Togglegroup
il peut être assigné à RadioButton
en utilisant setToggleGroup(ToggleGroup)
. Utilisez setSelected(Boolean)
pour présélectionner l'un des s RadioButton
.
RadioButton radioButton1 = new RadioButton("stackoverlow is awesome! :)");
radioButton1.setToggleGroup(group);
radioButton1.setSelected(true);
RadioButton radioButton2 = new RadioButton("stackoverflow is ok :|");
radioButton2.setToggleGroup(group);
RadioButton radioButton3 = new RadioButton("stackoverflow is useless :(");
radioButton3.setToggleGroup(group);
Événements pour les boutons radio
Généralement, lorsque l'un des ToggleGroup
RadioButton
d'un groupe ToggleGroup
est sélectionné, l'application exécute une action. Voici un exemple qui imprime les données utilisateur du RadioButton
sélectionné qui a été défini avec setUserData(Object)
.
radioButton1.setUserData("awesome")
radioButton2.setUserData("ok");
radioButton3.setUserData("useless");
ToggleGroup group = new ToggleGroup();
group.selectedToggleProperty().addListener((obserableValue, old_toggle, new_toggle) -> {
if (group.getSelectedToggle() != null) {
System.out.println("You think that stackoverflow is " + group.getSelectedToggle().getUserData().toString());
}
});
Demande de focus pour les boutons radio
Disons que le second RadioButton
sur trois est présélectionné avec setSelected(Boolean)
, le focus est toujours au premier RadioButton
par défaut. Pour changer cela, utilisez la méthode requestFocus()
.
radioButton2.setSelected(true);
radioButton2.requestFocus();