Choice Box in JavaFX Java 8 GUI
In diesem Artikel geht es um die Choice Box in JavaFX Java 8 GUI. Dabei handelt es sich um ein DropDownmenü. Also ein Menü wo man aus verschiedenen Möglichkeiten wählen kann.
Erstellung einer Choice Box in JavaFX Java 8 GUI
ChoiceBox cb = new ChoiceBox(FXCollections.observableArrayList("Norden", "Osten", "Süden", "Westen"));
Du siehst also, es ist ziemlich schnell eine Choice Box eingebaut. Man kann auch einen kleinen Trennstrich einfügen in dem man im Code statt eines Strings new Separator() einträgt
ChoiceBox cb = new ChoiceBox(FXCollections.observableArrayList("Norden", "Osten", new Separator(), "Süden", "Westen"));
[image img_id="6252" alt="choice box in javaFX java 8 gui" width="212" height="253"]
Mit einer einzigen Zeile können wir auch einen sinnvollen Tooltip hinzufügen.
cb.setTooltip(new Tooltip("Wähle die Himmelsrichtung"));
Auslesen des Wertes einer Choice Box in JavaFX Java 8 GUI
final ChoiceBox cb = new ChoiceBox(FXCollections.observableArrayList("Norden", "Osten", "Süden", "Westen"));
final String[] verbindungen = new String[]{"Dänemark", "Polen", "Schweiz", "Niederlande"};
final Label label = new Label("");
cb.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener() {
public void changed(ObservableValue ov,
Number old_val, Number new_val) {
label.setText(verbindungen[new_val.intValue()]);
}
});
[image img_id=”6253″ alt=”choice box in javaFX java 8 gui norden” width=”227″ height=”248″]
Mit dem ChangeListener, den wir ja bisher jedes Mal verwendet haben, wenn wir eine Veränderung erkennen und verwenden wollten, erkennen wir nun ob eine andere Wahl getroffen wurde. Dann lesen wir auf welche “indexProporty” ausgewählt wurde. Hier ist z.B. Norden auf der 0, Osten auf der 1, Süden auf der 2 etc. Abhängig davon setzen wir dann den Text des Labels, der den gleichen Index in unserem “verbindungen” String hat. Also ist Norden mit Dänemark, Osten mit Polen, Süden mit der Schweiz etc. verbunden.
Im nächsten Artikel schauen wir uns dann an, wie man Combo Boxen verwendet.