JavaFX展示舞台



我从NetBeans导入了一个JavaFX项目到Eclipse。奇怪的是,我无法执行在NetBeans中正常工作的代码。我用SceneBuilder设置了一个小gui。我只是想展示一点。fxml—在这一点上没有任何功能代码。我的主类是这样的:

public class Main extends Application {
public void start(Stage stage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
        Scene scene = new Scene(root);
        stage.setScene(scene);
        stage.setTitle(Strings.appName);
        stage.getIcons().add(new Image("sql.png")); 
        stage.show();
    }
    public static void main(String[] args) {
        launch(args);
    }
}

但是当我尝试执行代码时,eclipse编译器返回:

应用程序启动方法异常java.lang.reflect.InvocationTargetException在sun.reflect.NativeMethodAccessorImpl。invoke0(本机方法)atsun.reflect.NativeMethodAccessorImpl。调用(未知源)atsun.reflect.DelegatingMethodAccessorImpl。调用(未知源)atjava.lang.reflect.Method。调用(未知源)atcom.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(未知源)com.sun.javafx.application.LauncherImpl.launchApplication(未知源)在sun.reflect.Native . emethodaccessorimpl .invoke0(Native方法)在sun.reflect. native emethodaccessorimpl .invoke(未知来源:sun.reflect.DelegatingMethodAccessorImpl.invoke(未知java.lang.reflect.Method。调用(未知源)atsun.launcher.LauncherHelper FXHelper美元。主要(来源不明)原因:java.lang.RuntimeException:应用程序启动方法中的异常com.sun.javafx.application.LauncherImpl.launchApplication1(未知源)com.sun.javafx.application.LauncherImpl.lambda launchApplication 156美元(未知java.lang.Thread.run(未知来源)由以下原因引起:nullpointerexception: Location是必需的。在javafx.fxml.FXMLLoader。加载mpl(未知来源)在javafx.fxml.FXMLLoader。加载mpl(未知来源)在javafx.fxml.FXMLLoader。加载mpl(未知来源)在javafx.fxml.FXMLLoader。加载mpl(未知来源)在javafx.fxml.FXMLLoader。加载mpl(未知来源)在javafx.fxml.FXMLLoader。加载(未知来源)在core.Main.start (Main.java: 27)com.sun.javafx.application.LauncherImpl.lambda launchApplication1 163美元(未知源)com.sun.javafx.application.PlatformImpl.lambda runAndWait 176美元(未知源)com.sun.javafx.application.PlatformImpl.lambda零174美元(未知来源)java.security.AccessController。doPrivileged(本地方法)在com.sun.javafx.application.PlatformImpl.lambda runLater 175美元(未知来源:com.sun.glass.ui.InvokeLaterDispatcher$Future.run(未知源代码)在com.sun.glass.ui.win.WinApplication._runLoop(原生方法)com.sun.glass.ui.win.WinApplication。λ零149美元(未知来源)…1更多异常运行应用程序核心。主要

这是我的项目结构:

SQL
│   .classpath
│   .project
│
├───.settings
│       org.eclipse.jdt.core.prefs
│
├───bin
│   ├───gui
│   │       FXMLDocument.fxml
│   │       FXMLDocumentController.class
│   │       Main.class
│   │       sql.png
│   │
│   ├───print
│   │       Allgemein.class
│   │       Mahnung.class
│   │       PDF.class
│   │       Rechnung.class
│   │
│   └───various
│           Strings.class
│
└───src
    └───gui
            FXMLDocument.fxml
            FXMLDocumentController.java
            Main.java

我在这里做错了什么?还是eclipse在这里期待一些NetBeans没有期待的东西?

就像@James_D建议的那样,我能够使用

跟踪问题
System.out.println(getClass().getResource("Main.class"));

System.out.println(getClass().getResource("FXMLDocument.fxml"));

原来我的类路径一定是在将项目从运行NetBeans的ubuntu笔记本电脑复制到运行10和Eclipse的主Windows机器时被破坏了。我把它修好了,现在一切都正常了。

相关内容

  • 没有找到相关文章

最新更新