java - Eclipse 将不会读取/运行 fxml 文件

标签 java eclipse javafx

我正在 Eclipse 中编码,并尝试使用 javafx、fxml 和 CSS 为我的 java 类中的最终项目创建 MAd Libs 游戏。我已经安装了 gluon 的最新版本的场景构建器以及 java 的最新 JRE。这是我的代码

package application;
  import java.io.IOException;
  import java.util.ResourceBundle;

  import javafx.application.Application;
  import javafx.event.ActionEvent;
  import javafx.event.EventHandler;
  import javafx.fxml.FXMLLoader;
  import javafx.scene.Parent;
  import javafx.scene.Scene;
  import javafx.stage.Stage;

  public class Main extends Application{
    public static void main(String[] args) {
    launch(args);
}

@Override
public void start(Stage primaryStage) throws IOException {

        Parent root = FXMLLoader.load(getClass().getResource("scenebuilder.fxml"));
        Scene scene1 = new Scene(root);
        primaryStage.setTitle("Shane Ramos Final Project");
        primaryStage.setScene(scene1);
        primaryStage.show();
        } 
    }

每当我尝试运行它(让它调用我的 fxml 文件)时,它都会在控制台中显示此错误日志。

Exception in Application start method
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(Unknown Source)
    at com.sun.javafx.application.LauncherImpl.launchApplication(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
Caused by: java.lang.RuntimeException: Exception in Application start method
    at com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException: Location is required.
    at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
    at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
    at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
    at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
    at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
    at javafx.fxml.FXMLLoader.load(Unknown Source)
    at application.Main.start(Main.java:21)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.lambda$null$173(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(Unknown Source)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.lambda$null$148(Unknown Source)
    ... 1 more
Exception running application application.Main

我已经尝试了所有我能想到的方法来解决这个问题,但我完全不知所措。任何帮助表示赞赏。谢谢!

最佳答案

您必须先设置位置:

例如:

私有(private)父根;

...

FXMLLoader 加载器 = new FXMLLoader(); loader.setLocation(YourClass.class.getResource("yourFile.fxml"));

root =(父级)loader.load();

并确保您的 fxml 文件位于正确的文件夹中。

根据您的代码,您的 fxml 文件和 Main.java 应位于系统上的同一文件夹中。

关于java - Eclipse 将不会读取/运行 fxml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36802390/

相关文章:

java - 如何检测 JavaFX 2.2 运行时可用性

java - 使用Eclipse对Tomcat进行远程调试

java - Mavericks OS X 上的几个应用程序请求安装 Java 6 SE 运行时,但已经有 Java 7

JavaFX - 显示禁用标签的背景

java - 失去焦点时动态更改 JTable 单元格值

java - 如何将随机数添加到 java(blackjack) 的总数中?

Java - 替代 thread.sleep

java - Eclipse 不解析 javax.media.opengl.GL3 导入

kotlin - TornadoFx Undecorated 窗口从任务栏恢复时全屏显示

JavaFX 在 Swing 中的可用性