package comboboxapp1; import javafx.application.Application; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.event.Event; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.layout.HBox; import javafx.scene.layout.Pane; import javafx.scene.layout.VBox; import javafx.stage.Stage; public class Issue3 extends Application { public static void main(String[] args) { launch(args); } final ComboBox testedComboBox = new ComboBox(); @Override public void start(Stage stage) throws Exception { Pane pane = new Pane(); pane.setPrefHeight(200); pane.setPrefWidth(200); pane.getChildren().add(testedComboBox); Slider s = new Slider(); s.setMin(0); s.setMax(10); s.setShowTickLabels(true); s.setShowTickMarks(true); s.setMajorTickUnit(1); s.valueProperty().addListener(new ChangeListener(){ public void changed(ObservableValue ov, Number t, Number t1) { int newValue = t1.intValue(); System.out.println(newValue); testedComboBox.setVisibleRowCount(newValue); } }); VBox vb = new VBox(); vb.getChildren().addAll(pane, getAddItemHBox(), s); Scene scene = new Scene(vb, 400, 400); stage.setScene(scene); stage.show(); } private HBox getAddItemHBox() { HBox hb = new HBox(); Label lb = new Label("Add item"); final TextField tf = TextFieldBuilder.create().prefWidth(50).build(); Label atLb = new Label("at pos"); final TextField tfPos = TextFieldBuilder.create().prefWidth(50).build(); Button bt = ButtonBuilder.create().text("Add!").build(); bt.setOnAction(new EventHandler() { public void handle(Event t) { int index = Integer.parseInt(tfPos.getText()); ((ComboBox) testedComboBox).getItems().add(index, tf.getText()); } }); hb.getChildren().addAll(lb, tf, atLb, tfPos, bt); return hb; } }