javafx
Radio knopf
Suche…
Optionsfelder erstellen
Optionsfelder ermöglichen es dem Benutzer, ein Element aus den angegebenen auszuwählen. Es gibt zwei Möglichkeiten, einen RadioButton
mit einem Text daneben zu deklarieren. Entweder indem Sie den Standardkonstruktor RadioButton()
und den Text mit der Methode setText(String)
oder den anderen Konstruktor RadioButton(String)
.
RadioButton radioButton1 = new RadioButton();
radioButton1.setText("Select me!");
RadioButton radioButton2= new RadioButton("Or me!");
Als RadioButton
eine Erweiterung ist Labeled
kann es auch ein sein Image
mit dem angegebenen RadioButton
. Nachdem Sie den RadioButton
mit einem der Konstruktoren erstellt haben, fügen Sie das Image
einfach mit der setGraphic(ImageView)
-Methode wie hier hinzu:
Image image = new Image("ok.jpg");
RadioButton radioButton = new RadioButton("Agree");
radioButton.setGraphic(new ImageView(image));
Verwenden Sie Gruppen für Optionsfelder
Eine ToggleGroup
wird zum Verwalten der RadioButton
s verwendet, sodass jeweils nur einer in jeder Gruppe ausgewählt werden kann.
Erstellen Sie eine einfache ToggleGroup
wie folgt:
ToggleGroup group = new ToggleGroup();
Nachdem Sie eine Togglegroup
haben, kann sie mit setToggleGroup(ToggleGroup)
den RadioButton
setToggleGroup(ToggleGroup)
. Verwenden Sie setSelected(Boolean)
, um einen der RadioButton
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);
Ereignisse für Radioknöpfe
Normalerweise führt die Anwendung eine Aktion aus, wenn einer der RadioButton
s in einer ToggleGroup
ausgewählt wird. Nachfolgend ein Beispiel, in dem die Benutzerdaten des ausgewählten RadioButton
die mit 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());
}
});
Anfordern des Fokus für Optionsfelder
Nehmen wir an, der zweite von RadioButton
ist mit setSelected(Boolean)
. Der Fokus befindet sich standardmäßig noch auf dem ersten RadioButton
. Um dies zu ändern, verwenden Sie die requestFocus()
-Methode.
radioButton2.setSelected(true);
radioButton2.requestFocus();