package test; import javafx.application.Application; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.scene.Scene; import javafx.scene.control.ComboBox; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class RestrictedCombo extends Application { @Override public void start(Stage stage) { final StackPane root = new StackPane(); final ObservableList items = FXCollections.observableArrayList("Good value", "Bad value"); final ComboBox combo = new ComboBox<>(items); combo.getSelectionModel().select(0); combo.getSelectionModel().selectedIndexProperty().addListener( new ChangeListener() { @Override public void changed(ObservableValue ov, Number oldIdx, Number newIdx) { if (newIdx != 0) { combo.getSelectionModel().select(0); } } }); root.getChildren().add(combo); final Scene scene = new Scene(root, 400, 400); stage.setTitle("Restricted combo box"); stage.setScene(scene); stage.show(); } public static void main(final String[] args) { Application.launch(args); } }