JAVA javaFX menuBar,多个项目,一个方法(场景生成器)

标签 java javafx scenebuilder

我有一个用带有菜单栏的场景生成器构建的窗口。 在 menuBar 中有几个只能打开其他窗口的菜单项。

所以我只想编写一个函数,供每个菜单项使用,并打开相应的窗口。

我试着给每个menuItem一个id,并且用这个函数

public void openWindow(ActionEvent event){ 
    System.out.println( event);
}

我可以看到那个 id(例如:customer menuItem),

javafx.event.ActionEvent[source=MenuItem[id=customers, styleClass=[menu-item]]]

但我不知道如何让它使用它来打开客户窗口。

最佳答案

为了从 ActionEvent 中获取 id,你应该将它的源转换为 MenuItem:

public void openWindow(ActionEvent event){
    MenuItem source = (MenuItem) event.getSource();
    System.out.println(source.getId());
}

请注意,如果您不确定事件源是 MenuItem 类型,您可以这样检查:

if (event.getSource() instanceof MenuItem) {
     MenuItem source = (MenuItem) event.getSource();
     System.out.println(source.getId());
}

关于JAVA javaFX menuBar,多个项目,一个方法(场景生成器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41755798/

相关文章:

java - 如何在 Eclipse 中运行没有 main 方法的 JavaFX 应用程序?

JavaFx TableView 列不填充 TableView 宽度

java - 为 javafx textField 添加最多小数点后 2 位的监听器

java - 在第二个 Java 类文件中的一个 Java 类文件中设置 JTree - Swing

java - MyEclipse中如何跳转到指定断点?

java - 在 JavaFX 中使标签占据 HBox 上的所有可用空间

java - LDAP searchFilter samAccountName 来自用户输入定义的变量? java JNDI。有人知道该怎么做吗?

java - 线程中的异常 "main"java.lang.ArrayIndexOutOfBoundsException :5 What?

java - 如何组织jUnit测试来分别覆盖包和整个程序?

JavaFX 8 : Putting a default "x" mark via css if the checkbox is deselected