Radio Button in JavaFX
In diesem Artikel behandeln wir den Radio Button in JavaFX und schauen uns an wie wir die RadioButton Klasse verwenden können. Ein Radio Button kann entweder angewählt oder abgewählt sein. Normalerweise werden Radio Buttons in einer Gruppe verwendet, sodass immer nur einer der Radio Buttons aktiv ist. Für die Jenigen unter euch die noch die alten Kassettenspieler kennen, so könnt ihr euch einen Radio Button so vorstellen wie die Knöpfe auf einem Kassettenspieler, dort konnte immer nur einer aktiv sein. Wenn man z.B. vorgespult hat, war der Play Button deaktiviert, etc. Das Verhalten des Radio Button in JavaFX ist sehr ähnlich zu dem des Toggle Button.
Eine Radio Button in JavaFX anlegen:
// Ein RadioButton ohne Text im Label
RadioButton rb1 = new RadioButton();
// Label zum RadioButton hinzufügen
rb1.setText("Play");
// RadioButton mit Label
RadioButton rb2 = new RadioButton("Pause");
RadioButton rb3 = new RadioButton("Stop");
[image img_id=”6340″ alt=”Radio Button in JavaFX Java 8 GUI” width=”224″ height=”194″]
Auch hier sind die Radio Buttons natürlich in einem GridPane angeordnet und entsprechend gesetzt.
Momentan können wir jedoch noch alle 3 Buttons aktivieren. Das liegt daran, dass sie noch nicht in einer Toggle Group sind.
final ToggleGroup group = new ToggleGroup();
rb1.setToggleGroup(group);
rb1.setSelected(true);
rb2.setToggleGroup(group);
rb3.setToggleGroup(group);
Hier setze ich den ersten Radio Button auf “gesetzt”. Wir verwenden genau wie bei den Toggle Buttons auch hier eine Toggle Group.
Als nächstes Möchte ich nun, dass abhängig davon was gewählt ist, ein Bild angezeigt wird.
// Anlegen des ImageViews
ImageView imageView = new ImageView();
// Setzen des Bildes, welches gerade angewählt ist
final Image image = new Image(getClass().getResourceAsStream(group.getSelectedToggle().getUserData().toString() +
".jpg"));
imageView.setImage(image);
// verhalten, wenn man einen Radio Button anklickt
group.selectedToggleProperty().addListener(new ChangeListener(){
public void changed(ObservableValue<? extends Toggle> ov,
Toggle old_toggle, Toggle new_toggle) {
if (group.getSelectedToggle() != null) {
final Image image = new Image(
getClass().getResourceAsStream(
group.getSelectedToggle().getUserData().toString() +
".jpg"
)
);
imageView.setImage(image);
}
}
});
Das Ergebnis ist dann folgendes.
Beispiel für Radio Button in JavaFX Java 8 GUI
Im nächsten Artikel behandeln wir dann Check Boxen.