Я строю графический интерфейс Java-приложения, используя Scene Builder.Для каждого элемента я дал ему fx:id
, чтобы я мог обратиться к ним позже.Мне нужно использовать setOnAction()
на многих его элементах, таких как:
((Button)mainPane.lookup("#submitButton")).setOnAction(e->{
// ... code triggered when button is pressed ...
});
. Это работает для большинства элементов, кроме MenuItem
s.Когда я пытаюсь выполнить следующее, Eclipse говорит мне: «Невозможно привести от Node
к MenuItem
», и это не работает.
// Does not work
((MenuItem)mainPane.lookup("#about")).setOnAction(e->{
// ... take user to about page ...
});
Я вижу, что MenuItem
расширяет только Object
, поэтомунельзя кастовать из Node
.Как я могу вернуть MenuItem
, используя fx:id
?
Примечание: я знаю, что могу использовать On Action
FXML, но я хочу использовать лямбда-функции и сохранить код обработки событий в том же стиле.