By adding
change listener to ChoiceBox, you can set the behavior to choice box.
TestFX.java
Ex
choiceBox1.getSelectionModel().selectedIndexProperty()
.addListener((ObservableValue<?
extends Number> observable, Number oldValue, Number newValue) -> {
if ((int) oldValue == -1) {
System.out.println("Selection
changed form none to " + observableList.get((int) newValue));
} else {
System.out.println("Selection
changed form " + observableList.get((int) oldValue) + " to "
+
observableList.get((int) newValue));
}
});
Find the
below working application.
ChoiceBoxApp.java
package com.sample.demos; import java.io.FileNotFoundException; import java.net.MalformedURLException; import javafx.application.Application; import javafx.beans.value.ObservableValue; import javafx.collections.FXCollections; import javafx.scene.Scene; import javafx.scene.control.ChoiceBox; import javafx.scene.control.Separator; import javafx.scene.control.Tooltip; import javafx.scene.layout.VBox; import javafx.stage.Stage; import javafx.collections.ObservableList; public class ChoiceBoxApp extends Application { private static final Separator SEPARATOR = new Separator(); @Override public void start(Stage primaryStage) throws FileNotFoundException, MalformedURLException { ChoiceBox<Object> choiceBox1 = new ChoiceBox<>(); choiceBox1.setTooltip(new Tooltip("Select the language")); ObservableList<Object> observableList = FXCollections.observableArrayList("New", "Open File...", SEPARATOR, "close", "close all", SEPARATOR, "save", "save as", "save all"); choiceBox1.setItems(observableList); choiceBox1.getSelectionModel().selectedIndexProperty() .addListener((ObservableValue<? extends Number> observable, Number oldValue, Number newValue) -> { if ((int) oldValue == -1) { System.out.println("Selection changed form none to " + observableList.get((int) newValue)); } else { System.out.println("Selection changed form " + observableList.get((int) oldValue) + " to " + observableList.get((int) newValue)); } }); VBox vbox = new VBox(10, choiceBox1); Scene scene = new Scene(vbox, 400, 300); /* Set the scene to primaryStage, and call the show method */ primaryStage.setTitle("JavaFX Choice Box Example"); primaryStage.setScene(scene); primaryStage.show(); } }
TestFX.java
package com.sample.demos; import javafx.application.Application; public class TestFX { public static void main(String args[]) { Application.launch(ChoiceBoxApp.class, args); } }
Try to
select different options, you can able to see below kind of messges.
Selection
changed form none to Open File...
Selection
changed form Open File... to save
Selection
changed form save to save all
Selection changed form save
all to close all
No comments:
Post a Comment