我已成功将e(fx)clipse插件安装到eclipse和Scenebuilder 8.0,它们很好地集成了。我以前一直使用和开发使用Swing的GUI应用程序,在WindowBuilder插件的帮助下,它非常简单方便但现在我必须使用JavaFX开发应用程序,这就是我安装SceneBuilder的原因。例如,在WindowBuilder中,当我右键单击一个按钮时,可以向其添加一个动作,然后切换到代码并同时开发,动作块是在代码中的按钮下自动创建的。但是在Scene Builder中,当我想添加一个动作并在代码中编辑它时,我在这里失败的是我的样子:
以下是我在互联网上找到的示例:
我没有看到选择操作的箭头或 handleButtonAction 。 我只想使用像旧的WindowBuilder这样的SceneBuilder,这可能吗?你能告诉我,我做错了什么?
答案 0 :(得分:2)
WindowBuilder
通过拖放UI元素来创建Java代码,其中SceneBuilder
创建 FXML 。因此,我们没有选择向其添加操作,然后直接切换到代码。
Swing允许我们使用Java代码创建UI,这使得设计人员很难对视图进行更改。通过将视图与代码分离,JavaFX采用了更加设计人员友好的方法。 JavaFX中的视图是一个单独的实体,可以使用CSS和FXML进行设计/更改。
James_D在他的一条评论中说过:
JavaFX遵循更多MVP风格的架构,其中视图基本上是被动的,并由演示者操作("控制器")。
基本上,JavaFX中的每个视图都有一个相应的Controller(Java文件)。
此控制器用于以下事项:
fx:id
实例化FXML中定义的控件和布局以及为其定义的属性。使用FXMLLoader加载FXML,FXMLLoader又实例化Controller。控制器类由FXML中的fx:controller
标识。
如何处理UI元素的操作?
您可以将操作添加为控制器内的方法。
对于您使用onAction为handleButtonAction
的Button创建的上述FXML,您需要在控制器中创建一个具有此名称的方法。
public void handleButtonAction(ActionEvent action) {
// Do you action
}
一些好的读物: