首页 文章

JavaFX展示阶段

提问于
浏览
1

我将一个JavaFX项目从NetBeans导入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编译器返回:

sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)at的sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法)中的应用程序启动方法java.lang.reflect.InvocationTargetException异常 . 来自com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(未知来源)的java.lang.reflect.Method.invoke(未知来源)位于sun.reflect的com.sun.javafx.application.LauncherImpl.launchApplication(未知来源) . sun.reflectAccessorImpl.invoke0(本机方法)at sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源),位于sun.launcher的java.lang.reflect.Method.invoke(未知来源) . LauncherHelper $ FXHelper.main(Unknown Source)由以下引起:java.lang.RuntimeException:com.sun.javafx.application.LauncherImpl中com.sun.javafx.application.LauncherImpl.launchApplication1(未知来源)的Application start方法中的异常 . 拉姆达$ java.lang.Thread.run(未知来源)中的launchApplication $ 156(未知来源)引起:java.lang.NullPointerException:位置是必需的 . 位于javafx.fxml.FXMLLoader.loadImpl(未知来源)的javafx.fxml.FXMLLoader.loadImpl(未知来源)javafx.fxml.FXMLLoader.loadImpl(未知来源)javafx.fxml.FXMLLoader.loadImpl(未知来源)javafx位于core.Main.start(Main.java:27)的javafx.fxml.FXMLLoader.load(未知来源)的.fxml.FXMLLoader.loadImpl(未知来源)位于com.sun.javafx.application.LauncherImpl.lambda $ launchApplication1 $ 163 (未知来源)com.sun.javafx.application.PlatformImpl.lambda $ runAndWait $ 176(未知来源)at com.sun.javafx.application.PlatformImpl.lambda $ null $ 174(未知来源)at java.security.AccessController.doPrivileged (本地方法)at com.sun.javafx.application.PlatformImpl.lambda $ runLater $ 175(未知来源)com.sun.glass.ui.InvokeLaterDispatcher $ Future.run(未知来源)com.sun.glass.ui . com.sun.glass.ui.win.WinApplication.lambda中的win.WinApplication._runLoop(本机方法)$ null $ 149(未知来源)... 1更多异常运行应用程序core.Main

这是我的项目结构:

SQL
│.classpath
│.project

├───.settings
│org.eclipse.jdt.core.prefs

├───bin
│├───gui
││FXMLDocument.fxml
││FXMLDocumentController.class
││Main.class
││sql.png
││
│├───印
││Allgemein.class
││Mahnung.class
││PDF.class
││Rechnung.class
││
│└───各种各样
│Strings.class

└───src
└───gui
FXMLDocument.fxml
FXMLDocumentController.java
Main.java

我在这做错了什么?或者是eclipse在这里期待什么,NetBeans不是?!?

1 回答

  • 0

    就像@James_D建议的那样,我能够使用它来追踪问题

    System.out.println(getClass().getResource("Main.class"));
    

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

    原来我的类路径必须以某种方式损坏,同时将项目从运行NetBeans的ubuntu笔记本电脑复制到运行10和Eclipse的主Windows机器上 . 我修好了,现在一切正常 .

相关问题