java - 使用 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>
返回对组件的引用,以便我可以在主应用程序文件中显示新组件?谢谢你的帮助。
解决方案
推荐阅读
- mysql - 我如何限制一周中的某个特定日期?
- angular - 循环通过 HTTP 请求的最佳方法是什么
- python - 如何在 Darknet 中可视化地面实况边界框?
- c# - 无法使用 StorageItemContentProperties SavePropertiesAsync 在 MP4 文件中设置属性
- r - 如何将数据标签放在多柱形图上方?
- python - django rest framework- serializers、read_only 和 drf-nested-routers,如何设置父级?
- javascript - Vue JS 提供/注入和道具
- android - 媒体查询在华为手机中不起作用
- pandas - 当您将可以放入内存的数据帧与 pandas 连接时会发生什么?
- sql - TSQL - 从文本中删除参数列表