WindowBuilder与JavaFX Scenebuilder按钮动作?

时间:2015-10-21 09:45:08

标签: java eclipse javafx scenebuilder windowbuilder

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

My Scene Builder

以下是我在互联网上找到的示例:

Scene Builder from Internet Tutorial

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

1 个答案:

答案 0 :(得分:2)

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

Swing允许我们使用Java代码创建UI,这使得设计人员很难对视图进行更改。通过将视图与代码分离,JavaFX采用了更加设计人员友好的方法。 JavaFX中的视图是一个单独的实体,可以使用CSS和FXML进行设计/更改。

James_D在他的一条评论中说过:

  

JavaFX遵循更多MVP风格的架构,其中视图基本上是被动的,并由演示者操作("控制器")。

基本上,JavaFX中的每个视图都有一个相应的Controller(Java文件)。

此控制器用于以下事项:

  1. 使用fx:id实例化FXML中定义的控件和布局以及为其定义的属性。
  2. 将控件事件绑定到正确的处理程序,其名称在FXML中定义,正文在控制器中定义。
  3. 使用FXMLLoader加载FXML,FXMLLoader又实例化Controller。控制器类由FXML中的fx:controller标识。

      

    如何处理UI元素的操作?

    您可以将操作添加为控制器内的方法。

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

    public void handleButtonAction(ActionEvent action) {
    
       // Do you action 
    
    }
    

    一些好的读物: