Выполнить действие, когда элемент комбинированного списка выбран FXML
Я пытаюсь создать выпадающее меню (используя ComboBox) с контроллерами FXML и JavaFX.
Это то, что у меня уже есть:
<ComboBox fx:id="menuSettings" layoutX="14.0" layoutY="27.0" prefHeight="27.0" prefWidth="27.0" style="-fx-background-color: white;">
<items>
<FXCollections fx:factory="observableArrayList">
<String fx:value="Menu" />
<String fx:value="Settings" />
<String fx:value="Exit" />
</FXCollections>
</items>
</ComboBox>
Как я могу показать новую сцену, используя слушателей Action, когда выбран параметр ComboBox?
Заранее спасибо!
1 ответ
Есть два пути, которые приходят на ум, как вы могли бы сделать это.
Первым было бы добавить onAction="#yourMethod"
на ваш <ComboBox ... >
тег. Затем вы можете добавить код в свой контроллер...
@FXML public void yourMethod() {
//Show the scene here
}
... который будет запущен, когда пользователь выберет элемент.
Другая вещь, которую вы могли бы сделать, это добавить ChangeListener
на ваш ComboBox:
@FXML public void initialize() {
yourComboBox.valueProperty().addListener(new ChangeListener<String>() {
@Override public void changed(ObservableValue value, String old, String new) {
//Show your scene here
}
});
}
Обе эти работы, я думаю, просто предпочтительнее делать в коде или на языке FXML.
Я надеюсь, что это было полезно, и удачи в вашем проекте!
(Если это не ответило на ваш вопрос, пожалуйста, дайте мне знать, и я сделаю все возможное, чтобы пересмотреть мой ответ)