刚刚在 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。
这是由于资源目录或名称不正确造成的吗?
是的。
如果您使用
HelloApplication.class.getResource("main-view.fxml")
加载 FXML 文件,您的 FXML 文件需要与类 HelloApplication
位于相同的(相对)路径中。
即您的 FXML 文件需要位于目录
com/example/oneschoolmanager_tst/Testers
中。