首页 > 解决方案 > 使用 javaFX setOnAction 返回

问题描述

对不起这个模糊的名字,但我不知道该怎么称呼这个问题,希望我的解释有所帮助。

我正在编写一个程序,它是一种使用 Javafx 的模块化文本编辑器。有不同的组件,比如专门的文本编辑器,或者将来可能会有更直观的拖放式界面。

我想做的所有用户都使用菜单栏创建组件的新实例。在我看来,用户应该启动程序,然后能够导航到File>New Component> MySpecializedEditor,然后将实例化一个新实例MySpecializedEditor并在舞台上显示。

在过去,我通过创建一个扩展 javaFx 的类MenuBar并在构造函数中需要它来做到这一点,borderPane这样我就可以直接在MyMenuBar该类的阶段设置组件。

但这似乎是一种不必要的耦合方式。

以前的方法:

在主 javaFx 文件中

MenuBar menuBar = new MyMenuBar(borderPane);

在我的菜单栏中

//Create menu path for File>New Component><List of Components>

for(Component c: componentList)
{
    //setOnAction for each element in List of Components that places
    //in the center.
    MenuItem i = new MenuItem(c.getName());
    fileNew.getItems().add(i);//adds component to File>New Component>List of Components
    i.setOnAction(event ->
    {
        borderPane.setCenter((Node) c);//Places clicked component in the center of the screen.
    });
}

我想知道我是否可以通过单击项目来File>New Component><List of Component>返回对组件的引用,以便我可以在主应用程序文件中显示新组件?谢谢你的帮助。

标签: javajavafx

解决方案


推荐阅读