WindowBuilder 与 JavaFX Scenebuilder 按钮操作?
WindowBuilder vs. JavaFX Scenebuilder Button Action?
我已经成功安装了e(fx)clipse插件到eclipse和Scenebuilder 8.0,它们集成的很好。我以前一直使用和开发 GUI 应用程序与 Swing,在 WindowBuilder 插件的帮助下,它非常简单方便,但现在我必须使用 JavaFX 开发应用程序,这就是我安装 SceneBuilder 的原因。例如,在 WindowBuilder 中,当我右键单击一个按钮时,可以向它添加一个动作,然后切换到代码并同时开发,动作块是在代码中的按钮下自动创建的。但是在 Scene Builder 中,当我想添加一个动作并在代码中编辑它时,我失败了,这里是我的样子:
下面是我在 Internet 上找到的示例的样子:
我没有看到选择操作或 handleButtonAction 的箭头。
我只想像使用旧的 WindowBuilder 一样使用 SceneBuilder,这可能吗?能否赐教,我做错了什么?
WindowBuilder
通过拖放 UI 元素创建 Java 代码,而 SceneBuilder
创建 FXML。因此,我们没有选择 向其添加操作然后直接切换到代码 的选项。
Swing 允许我们使用 Java 代码创建 UI,这使得设计人员很难更改视图。 JavaFX 通过将视图与代码分离,采用对设计人员更友好的方法。 JavaFX 中的视图是一个单独的实体,可以使用 CSS 和 FXML 进行设计/更改。
James_D 在他的评论之一中说:
JavaFX follows more of a MVP-style architecture, where the view is basically passive and is manipulated by the presenter ("controller").
基本上,JavaFX 中的每个视图都有一个对应的控制器(Java 文件)。
此控制器用于以下用途:
- 使用
fx:id
. 实例化 FXML 中定义的控件和布局以及为它们定义的属性
- 将控件事件绑定到适当的处理程序,其名称在 FXML 中定义,主体在控制器中定义。
FXML 是使用 FXMLLoader 加载的,FXMLLoader 又实例化了控制器。控制器 class 在 FXML 中由 fx:controller
标识。
How do you handle actions of the UI elements ?
您将操作作为方法添加到控制器中。
对于您使用 onAction 为 handleButtonAction
的 Button 创建的上述 FXML,您需要在控制器中创建一个具有此名称的方法。
public void handleButtonAction(ActionEvent action) {
// Do you action
}
一些不错的读物:
- Why Use FXML
- FXML full reference
- Starting on JavaFX - JavaFX version and “development patterns” questions
我已经成功安装了e(fx)clipse插件到eclipse和Scenebuilder 8.0,它们集成的很好。我以前一直使用和开发 GUI 应用程序与 Swing,在 WindowBuilder 插件的帮助下,它非常简单方便,但现在我必须使用 JavaFX 开发应用程序,这就是我安装 SceneBuilder 的原因。例如,在 WindowBuilder 中,当我右键单击一个按钮时,可以向它添加一个动作,然后切换到代码并同时开发,动作块是在代码中的按钮下自动创建的。但是在 Scene Builder 中,当我想添加一个动作并在代码中编辑它时,我失败了,这里是我的样子:
下面是我在 Internet 上找到的示例的样子:
我没有看到选择操作或 handleButtonAction 的箭头。 我只想像使用旧的 WindowBuilder 一样使用 SceneBuilder,这可能吗?能否赐教,我做错了什么?
WindowBuilder
通过拖放 UI 元素创建 Java 代码,而 SceneBuilder
创建 FXML。因此,我们没有选择 向其添加操作然后直接切换到代码 的选项。
Swing 允许我们使用 Java 代码创建 UI,这使得设计人员很难更改视图。 JavaFX 通过将视图与代码分离,采用对设计人员更友好的方法。 JavaFX 中的视图是一个单独的实体,可以使用 CSS 和 FXML 进行设计/更改。
James_D 在他的评论之一中说:
JavaFX follows more of a MVP-style architecture, where the view is basically passive and is manipulated by the presenter ("controller").
基本上,JavaFX 中的每个视图都有一个对应的控制器(Java 文件)。
此控制器用于以下用途:
- 使用
fx:id
. 实例化 FXML 中定义的控件和布局以及为它们定义的属性
- 将控件事件绑定到适当的处理程序,其名称在 FXML 中定义,主体在控制器中定义。
FXML 是使用 FXMLLoader 加载的,FXMLLoader 又实例化了控制器。控制器 class 在 FXML 中由 fx:controller
标识。
How do you handle actions of the UI elements ?
您将操作作为方法添加到控制器中。
对于您使用 onAction 为 handleButtonAction
的 Button 创建的上述 FXML,您需要在控制器中创建一个具有此名称的方法。
public void handleButtonAction(ActionEvent action) {
// Do you action
}
一些不错的读物:
- Why Use FXML
- FXML full reference
- Starting on JavaFX - JavaFX version and “development patterns” questions