IntelliJ IDEA下JavaFX scenebuilder的使用

首先新建一个JavaFXproject
在这里插入图片描述

然后看到sample这个package里面有三个文件,分别是Main.java,Controller.java,sample.fxml,我们主要使用fxml中的scenebuilder来构建界面,使用Controller来控制fxml中的界面构件

在这里插入图片描述

现在删除其中的GridPane,添加一个AnchorPane,并在Text中加入fx:controller="sample.Controller"来指定Controller,在这里插入图片描述

加到Text中AnchorPane的最后

拖动一个Button到AnchorPane中并设定fxID
在这里插入图片描述
回到Controller,修改

package sample;

public class Controller {
    
}

package sample;

import javafx.fxml.Initializable;
import java.net.URL;
import java.util.ResourceBundle;

public class Controller implements Initializable{
    public void initialize(URL location, ResourceBundle resources)
    {

    }
}

其中的Initializable接口里面包含了一个方法initialize(java.net.URL location, java.util.ResourceBundle resources),官方文档的解释如下

Called to initialize a controller after its root element has been completely processed.

即重写这个方法可以用作Controller的初始化以及根组件的运行,可以在这个方法里面初始化你的各种组件

定义按钮变量以及事件方法

package sample;

import javafx.fxml.Initializable;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.net.URL;
import java.util.ResourceBundle;

public class Controller implements Initializable{
    public Button button;
    public void initialize(URL location, ResourceBundle resources)
    {

    }
    public void Button_Click(ActionEvent actionEvent)
    {
           System.out.println("Button Click!");
    }
}

回到scenebuilder关联方法跟点击事件
在这里插入图片描述
main中设置窗口大小为600*400,运行成功

primaryStage.setScene(new Scene(root, 600, 400));

在这里插入图片描述
要注意的是,按alt+enter引用包的时候,要保证引用正确的包,如事件处理引用的包是import javafx.event.ActionEvent而不是import java.awt.event.ActionEvent,否则会显示fxml无法识别该方法

  • 4
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值