javafx
Radio knop
Zoeken…
Radioknoppen maken
Met keuzerondjes kunt u de gebruiker één element van de gegeven elementen laten kiezen. Er zijn twee manieren om een RadioButton
te declareren met een tekst ernaast. Ofwel door de standaardconstructor RadioButton()
en de tekst in te stellen met de methode setText(String)
of door de andere constructor RadioButton(String)
.
RadioButton radioButton1 = new RadioButton();
radioButton1.setText("Select me!");
RadioButton radioButton2= new RadioButton("Or me!");
Aangezien RadioButton
een extensie van Labeled
is, kan er ook een Image
opgegeven voor de RadioButton
. Nadat u de RadioButton
met een van de constructors hebt gemaakt, voegt u eenvoudig de Image
met de setGraphic(ImageView)
-methode zoals hier:
Image image = new Image("ok.jpg");
RadioButton radioButton = new RadioButton("Agree");
radioButton.setGraphic(new ImageView(image));
Gebruik groepen op keuzerondjes
Een ToggleGroup
wordt gebruikt om de RadioButton
s te beheren, zodat slechts één in elke groep per keer kan worden geselecteerd.
Maak een eenvoudige ToggleGroup
als volgt:
ToggleGroup group = new ToggleGroup();
Na het maken van een Togglegroup
kan deze worden toegewezen aan de RadioButton
s met behulp van setToggleGroup(ToggleGroup)
. Gebruik setSelected(Boolean)
om een van de RadioButton
's vooraf te selecteren.
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);
Evenementen voor keuzerondjes
Gewoonlijk voert de toepassing een actie uit wanneer een van de RadioButton
's in een ToggleGroup
is geselecteerd. Hieronder ziet u een voorbeeld dat de gebruikersgegevens van de geselecteerde RadioButton
afdrukt die zijn ingesteld met 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());
}
});
Verzoek om focus voor keuzerondjes
Laten we zeggen dat de tweede RadioButton
van de drie vooraf is geselecteerd met setSelected(Boolean)
, de focus ligt standaard nog steeds op de eerste RadioButton
. Gebruik de methode requestFocus()
om dit te wijzigen.
radioButton2.setSelected(true);
radioButton2.requestFocus();