JavaFX在IDEA配置Scene Builder与简单入门

😂 这篇文章最后更新于1138天前,您需要注意相关的内容是否还可用。

1、在Oracle官网下载JavaFX Scene Builder:https://www.oracle.com/java/technologies/javase/javafxscenebuilder-info.html

2、安装好后在idea设置中搜索javafx,在Path to SceneBuilder中填写软件程序路径

3、idea创建JavaFx项目

image-20210314120234353

4、可以鼠标右键创建新布局fxml

image-20210314120408594

5、鼠标右键可以以Scene Builder打开布局文件,这里打开示例sample.fxml

image-20210314120516978

6、打开后可以拖动控件进行设计布局

image-20210314120723356

7、这里我们加了个布局跟控件模拟登录,Hierarchy中会显示当前所有布局情况,右侧code面板中id可以给控件命名方便代码调用,例如下图给用户名id命名为usernameField,登录id设置为loginButton,其他控件类似,并且登录按钮绑定事件方法login。

image-20210314122315883

8、点击左侧Controller选择Controller类给fxml绑定你要写代码的Controller

image-20210314123835237

8、点击View->Show sample Controller Skeleton可以生成示例代码

image-20210314122352134

9、将生成的代码复制到Cotroller.java中,这里简单在事件中写了获取用户名密码以及重置输入框操作

package sample;

/**
 * Sample Skeleton for 'sample.fxml' Controller Class
 */

import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;

public class Controller {
    @FXML // fx:id="usernameField"
    private TextField usernameField; // Value injected by FXMLLoader

    @FXML // fx:id="clearButton"
    private Button clearButton; // Value injected by FXMLLoader

    @FXML // fx:id="loginButton"
    private Button loginButton; // Value injected by FXMLLoader

    @FXML // fx:id="passwordField"
    private PasswordField passwordField; // Value injected by FXMLLoader

    @FXML
    void login(ActionEvent event) {
        System.out.println("账号"+usernameField.getText());
        System.out.println("密码"+passwordField.getText());
    }

    @FXML
    void clear(ActionEvent event) {
        usernameField.clear();
        passwordField.setText("");
        System.out.println("账号"+usernameField.getText());
        System.out.println("密码"+passwordField.getText());
    }

}

10、启动Main方法后发现怎么窗口这么小?原来是要设置窗口大小的,当然标题也可以设置,设置合适宽高

image-20210314124637348