package comboboxapp1; import javafx.application.Application; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.ComboBox; import javafx.scene.control.TextField; import javafx.scene.layout.Pane; import javafx.scene.layout.VBox; import javafx.stage.Stage; /** * @author Alexander Kirov */ public class Issue4 extends Application { public static void main(String[] args) { launch(args); } final ComboBox testedComboBox = new ComboBox(); static int counter = 0; @Override public void start(Stage stage) throws Exception { VBox pane = new VBox(); pane.setPrefHeight(200); pane.setPrefWidth(200); testedComboBox.getItems().addAll("1", "2", "3"); VBox vb = new VBox(); testedComboBox.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener(){ public void changed(ObservableValue ov, Number t, Number t1) { System.out.println("Selected index " + testedComboBox.getSelectionModel().getSelectedIndex()); } }); testedComboBox.valueProperty().addListener(new ChangeListener(){ public void changed(ObservableValue ov, String t, String t1) { System.out.println("New value : " + t1); } }); Button modeChangeButton = new Button("change to editable"); modeChangeButton.setOnAction(new EventHandler(){ public void handle(ActionEvent t) { testedComboBox.setEditable(true); } }); pane.getChildren().addAll(testedComboBox, modeChangeButton); vb.getChildren().addAll(pane); Scene scene = new Scene(vb, 400, 400); stage.setScene(scene); stage.show(); } }