Класс javafx.scene.control.ChoiceBox<T> представляет выпадающий список, но в отличие от ComboBox в ChoiceBox рядом с выбранным элементом устанавливается отметка.
Для создания объекта ChoiceBox можно использовать один из конструкторов класса:
Из методов ChoiceBox следует выделить следующие:
void setValue(T item): устанавливает выбранный по умолчанию элемент (если не вызвать данный метод, то по умолчанию никакой элемент не будет выбран)
T item getValue(): возвращает текущий выбранный элемент
void setOnAction(EventHandler<ActionEvent> value): устанавливает обработчик, который срабатывает при выборе элемента в списке
Создадим выпадающий список ChoiceBox:
import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.layout.FlowPane; import javafx.scene.control.Label; import javafx.scene.control.ChoiceBox; import javafx.collections.ObservableList; import javafx.collections.FXCollections; import javafx.geometry.Orientation; public class Main extends Application{ public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage stage) throws Exception { ObservableList<String> langs = FXCollections.observableArrayList("Java", "JavaScript", "C#", "Python"); ChoiceBox<String> langsChoiceBox = new ChoiceBox<String>(langs); langsChoiceBox.setValue("Java"); Label lbl = new Label(); langsChoiceBox.setOnAction(event -> lbl.setText(langsChoiceBox.getValue())); FlowPane root = new FlowPane(10, 10, langsChoiceBox, lbl); Scene scene = new Scene(root, 300, 250); stage.setScene(scene); stage.setTitle("ChoiceBox in JavaFX"); stage.show(); } }
После выбора элемента рядом с ним появится отметка: