我使用 SceneBuilder 对 FXML 进行建模后,JavaFX 应用程序无法启动

问题描述 投票:0回答:1

刚刚在 SceneBuilder 上创建了基本 UI 并将 FXML 保存到 Java 中,但现在每当我启动应用程序 [HelloApplication] 时,都会出现有关未设置 fxml 位置的错误

这是由于资源目录或名称不正确造成的吗?

您好申请代码:

package com.example.oneschoolmanager_tst.Testers;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.stage.Stage;

import java.io.IOException;

public class HelloApplication extends Application {
    @Override
    public void start(Stage stage) throws IOException {
        FXMLLoader fxmlLoader = new FXMLLoader(HelloApplication.class.getResource("main-view.fxml"));
        Scene scene = new Scene(fxmlLoader.load());
        stage.setTitle("Hello!");
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch();
    }
}

运行时,它会给出 IllegalStateException 并显示消息 Location is not set at line 14。

java javafx fxml fxmlloader
1个回答
0
投票

这是由于资源目录或名称不正确造成的吗?

是的。

如果您使用

HelloApplication.class.getResource("main-view.fxml")
加载 FXML 文件,您的 FXML 文件需要与类
HelloApplication
位于相同的(相对)路径中。

即您的 FXML 文件需要位于目录

com/example/oneschoolmanager_tst/Testers
中。

© www.soinside.com 2019 - 2024. All rights reserved.