gpt4 book ai didi

java - WindowBuilder 与 JavaFX Scenebuilder 按钮操作?

转载 作者:行者123 更新时间:2023-11-30 03:12:56 30 4
gpt4 key购买 nike

我已经成功地将e(fx)clipse插件安装到eclipse和Scenebuilder 8.0,它们集成得很好。我以前一直使用 Swing 来使用和开发 GUI 应用程序,在 WindowBuilder 插件的帮助下,非常简单和方便,但现在我必须使用 JavaFX 开发应用程序,这就是我安装 SceneBuilder 的原因。例如,在 WindowBuilder 中,当我右键单击一个按钮时,可以向其添加一个操作,然后切换到代码并同时开发,操作 block 会在代码中的按钮下自动创建。但是在场景生成器中,当我想添加一个 Action 并在代码中编辑它时,我失败了,这就是我的样子:

My Scene Builder

下面是我在互联网上找到的示例的外观:

Scene Builder from Internet Tutorial

我没有看到用于选择操作或handleButtonAction的箭头。我只想像旧的 WindowBuilder 一样使用 SceneBuilder,这可能吗?你能告诉我,我做错了什么吗?

最佳答案

WindowBuilder 通过拖放 UI 元素来创建 Java 代码,而 SceneBuilder 创建 FXML。因此,我们无法向其中添加操作,然后直接切换到代码

Swing 允许我们使用 Java 代码创建 UI,这使得设计人员很难对 View 进行更改。 JavaFX 通过将 View 与代码分离,采用了一种对设计人员更加友好的方法。 JavaFX 中的 View 是一个单独的实体,可以使用 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 中的每个 View 都有一个对应的 Controller (Java 文件)。

该 Controller 用于以下用途:

  1. 实例化 FXML 中定义的控件和布局以及使用 fx:id 为其定义的属性。
  2. 将控件事件绑定(bind)到正确的处理程序,该处理程序的名称在 FXML 中定义,主体在 Controller 中定义。

使用 FXMLLoader 加载 FXML,FXMLLoader 又实例化 Controller 。 Controller 类由 FXML 中的 fx:controller 标识。

How do you handle actions of the UI elements ?

您将操作添加为 Controller 内的方法。

对于您使用 onAction 为 handleButtonAction 的 Button 创建的上述 FXML,您需要在 Controller 中创建一个具有此名称的方法。

public void handleButtonAction(ActionEvent action) {

// Do you action

}

一些不错的读物:

关于java - WindowBuilder 与 JavaFX Scenebuilder 按钮操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33255953/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com