import javafx.application.Application; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.scene.Scene; import javafx.scene.control.ComboBox; import javafx.scene.control.ToggleButton; import javafx.scene.layout.HBox; import javafx.stage.Stage; public class ComboBoxApp extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage stage) throws Exception { stage.setTitle("ComboBoxApp " + System.getProperty("javafx.runtime.version") ); stage.setScene(createScene()); stage.show(); } private Scene createScene() { final ComboBox comboBox = new ComboBox(); for (int i = 0; i < 5; i ++) comboBox.getItems().add("Item " + i); HBox root = new HBox(); root.setSpacing(20); root.getChildren().add(comboBox); ToggleButton editable = new ToggleButton("Editable"); editable.selectedProperty().addListener(new ChangeListener() { public void changed(ObservableValue ov, Boolean t, Boolean t1) { comboBox.setEditable(t1); } }); root.getChildren().add(editable); return new Scene(root, 400, 300); } }