Я пытаюсь кодировать небольшой RPG, и я решил поместить основы в документ fxml (MenuBar с их элементами).
Поэтому теперь я планирую открыть новое окно, когда вы щелкнете по пунктам меню (Персонаж, Инвентарь и снаряжение), чтобы я мог отобразить вещи, в которых есть дополнительное окно. Поэтому имеет смысл установить заголовок каждого меню, эквивалентный тексту, отображаемому в MenuItem. Конечно, я мог бы просто создать дополнительный метод для каждого элемента меню, но я ищу возможность, где я могу получить идентификатор элемента меню, который вызвал событие, поэтому я могу использовать их метод getText для получения тега ,
Кто-нибудь может мне помочь?
Я попытался получить доступ к объекту с помощью «this», а также подумал об использовании enum для подключения идентификаторов к объектам enum MenuName, поэтому мне просто нужно включить переключатель в моем методе, создавая таким образом меню, но это также не сработало, потому что там я не могу проверить, какой из ID был уволен. Так что для этой части моей программы это не поможет.
Вот код в моем классе контроллера
public class Controller {
@FXML
private void menuIsClickedDefault(ActionEvent event) throws Exception {
Stage secondStage = new Stage();
Parent a = FXMLLoader.load(getClass().getResource("menus.fxml"));
secondStage.setTitle(HERES_MY_PROBLEM);
secondStage.setScene(new Scene(a, 646, 400));
secondStage.initModality(Modality.APPLICATION_MODAL);
secondStage.show();
}
}
и это мои объекты fxml:
<MenuItem fx:id="stats" mnemonicParsing="false" text="Statistics" />
<MenuItem fx:id="inv" mnemonicParsing="false" text="Inventory" />
<MenuItem fx:id="equip" mnemonicParsing="false" text="Equipment" />
Я еще не интегрировал метод в объекты, потому что он не имеет смысла без решения проблемы, и я знаю, что остальная часть кода работает из-за аналогичного метода для настроек.