IntelliJ中创建Gradle项目并写JavaFx application时, 解决FXMLLoader报错Location is required的问题

本文详细介绍了如何正确地使用FXMLLoader加载FXML文件,并给出了一个具体的JavaFX应用实例。文章还提供了正确的main方法、FXML文件路径配置及controller类实现,同时指出了在build.gradle中配置资源路径的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

FXMLLoader一直报location is required.

  1. 正确的main.java内容:
    注意fxml名字前的那个路径名是宏包名,
    第一位是/ 开头!!(不然会报错.)
package edu.gcsc.biogas.vl;
public class App extends Application {

    public static void main(String[] args) {
        launch(args);
    }
    
    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("/edu/gcsc/biogas/vl/sample.fxml"));
        Scene scene = new Scene(root,300,275);
        primaryStage.setTitle("FXML WELCOME!!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

2.此外还要在build.gradle文件里添加这段话,才能正确查找并加载FXML文件.

sourceSets {
    main {
        resources {
            srcDirs = ["src/main/java"]
            includes = ["**/*.fxml"]
        }
    }
}
  1. 正确的controller类: 注意添加了接口和重写了initialize方法.
public class Controller implements Initializable {
    @FXML
    private Button btn;


    @Override
    public void initialize(URL location, ResourceBundle resources){
    }
    public void pressBtn() {System.out.println("OK");}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值