Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我在JavaFX程序中不断遇到这些错误:InvocationTargetException、RuntimeException、NullPointerException_Java_Javafx - Fatal编程技术网

我在JavaFX程序中不断遇到这些错误:InvocationTargetException、RuntimeException、NullPointerException

我在JavaFX程序中不断遇到这些错误:InvocationTargetException、RuntimeException、NullPointerException,java,javafx,Java,Javafx,每当我尝试编译我的程序时,总是会出现以下错误: 应用程序启动方法中的异常 java.lang.reflect.InvocationTargetException位于 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0Native 方法在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invokeNativeMethodAccessorImpl.java:6

每当我尝试编译我的程序时,总是会出现以下错误:

应用程序启动方法中的异常 java.lang.reflect.InvocationTargetException位于 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0Native 方法在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invokeNativeMethodAccessorImpl.java:62 在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invokeDelegatingMethodAccessorImpl.java:43 java.base/java.lang.reflect.Method.invokeMethod.java:564 at javafx.graphics/com.sun.javafx.application.LaunchImpl.LaunchApplicationWithArgsLancherImpl.java:464 在 javafx.graphics/com.sun.javafx.application.LaunchImpl.LaunchApplicationLaunchImpl.java:363 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0Native 方法在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invokeNativeMethodAccessorImpl.java:62 在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invokeDelegatingMethodAccessorImpl.java:43 java.base/java.lang.reflect.Method.invokeMethod.java:564 at java.base/sun.launcher.launchelper$FXHelper.mainlunchelper.java:1051 原因:java.lang.RuntimeException:应用程序启动时出现异常 方法在 javafx.graphics/com.sun.javafx.application.LaunchImpl.LaunchApplication1LaunchImpl.java:900 在 javafx.graphics/com.sun.javafx.application.LaunchImpl.lambda$launchApplication$2LaunchImpl.java:195 在java.base/java.lang.Thread.runThread.java:832处,由以下原因引起: javafx.fxml.LoadException: /C:/Users/james/Desktop/Spring%20Semester%202020/INFO%202413/CarRental/out/production/CarRental/CarRental/address/view/LoginPage.fxml:32

在 javafx.fxml/javafx.fxml.FXMLLoader.constructLoadExceptionFXMLLoader.java:2625 在javafx.fxml/javafx.fxml.fxmloader.loadimplfxmloader.java:2603 在javafx.fxml/javafx.fxml.fxmloader.loadimplfxmloader.java:2466 在javafx.fxml/javafx.fxml.fxmloader.loadimplfxmloader.java:3237 在javafx.fxml/javafx.fxml.fxmloader.loadimplfxmloader.java:3194 在javafx.fxml/javafx.fxml.fxmloader.loadimplfxmloader.java:3163 在javafx.fxml/javafx.fxml.fxmloader.loadimplfxmloader.java:3136 在javafx.fxml/javafx.fxml.fxmloader.loadimplfxmloader.java:3113 在javafx.fxml/javafx.fxml.fxmloader.loadfxmloader.java:3106处 carRental.address.Main.startMain.java:24 at javafx.graphics/com.sun.javafx.application.LaunchImpl.lambda$launchApplication1$9LaunchImpl.java:846 在 javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12PlatformImpl.java:455 在 javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10PlatformImpl.java:428 在 java.base/java.security.AccessController.doPrivilegedAccessController.java:391 在 javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11PlatformImpl.java:427 在 javafx.graphics/com.sun.glass.ui.invokelateDispatcher$Future.runinvokelateDispatcher.java:96 在 javafx.graphics/com.sun.glass.ui.win.WinApplication.\u runLoopNative 方法在 javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3WinApplication.java:174 ... 1其他原因:java.lang.RuntimeException: java.lang.reflect.InvocationTargetException位于 javafx.fxml/com.sun.javafx.fxml.BeanAdapter.putbeandapter.java:262 在 javafx.fxml/com.sun.javafx.fxml.BeanAdapter.putbeandapter.java:54 在 javafx.fxml/javafx.fxml.FXMLLoader$Element.applyPropertyFXMLLoader.java:520 在 javafx.fxml/javafx.fxml.fxmloader$Element.ProcessValuefxmloader.java:370 在 javafx.fxml/javafx.fxml.FXMLLoader$Element.processPropertyAttributeFXMLLoader.java:332 在 javafx.fxml/javafx.fxml.fxmloader$Element.processInstancePropertyAttributesFXMLLoader.java:242 在 javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processEndElementFXMLLoader.java:775 在 javafx.fxml/javafx.fxml.fxmloader.processEndElementFXMLLoader.java:2838 在javafx.fxml/javafx.fxml.fxmloader.loadimplfxmloader.java:2557 ... 17更多原因:java.lang.reflect.InvocationTargetException 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0Native 方法在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invokeNativeMethodAccessorImpl.java:62 在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invokeDelegatingMethodAccessorImpl.java:43 java.base/java.lang.reflect.Method.invokeMethod.java:564 at com.sun.javafx.reflect.Trampoline.invokeMethodUtil.java:76 at jdk.internal.reflect.GeneratedMethodAccessor2.invokeUnknown源 在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invokeDelegatingMethodAccessorImpl.java:43 java.base/java.lang.reflect.Method.invokeMethod.java:564 at javafx.base/com.sun.javafx.reflect.MethodUtil.invokeMethodUtil.java:273 在 javafx.fxml/com.sun.javafx.fxml.MethodHelper.invokeMethodHelper.java:83 在 javafx.fxml/com.sun.javafx.fxml.ModuleHelper.invokeModuleHelper.java:98 在 javafx.fxml/com.sun.javafx.fxml.BeanAdapter.put java:258 ... 25更多原因:java.lang.reflect.InAccessibleObject异常: 无法生成javafx.css.ParsedValue css.CssParser.parsexprjava.lang.String,java.lang.String 可访问:模块javafx.graphics不会将javafx.css打开到 未命名模块@26123535 at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessibleAccessibleObject.java:349 在 java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessibleAccessibleObject.java:289 在 java.base/java.lang.reflect.Method.checkCanSetAccessibleMethod.java:196 位于java.base/java.lang.reflect.Method.setAccessibleMethod.java:190 在de.jensd.fx.glyphs.GlyphIcon.convertGlyphIcon.java:248在 GlyphIcon.setSizeGlyphIcon.java:144。。。37多 运行应用程序carRental.address.Main时出现异常

我在这个问题上也看到了类似的情况,我遵循了他们所说的有助于解决这个问题的方法。然而,他们提供的解决方案并没有解决我的问题。我还设置了我的虚拟机来补充我对这个项目的需求。因为我没有使用Maven,所以我将VM设置为以下路径:模块路径C:\openjfx-11.0.2\u windows-x64\u bin-sdk\javafx-sdk-11.0.2\lib-添加模块javafx.controls,javafx.fxml

我的代码:

package carRental.address;

import javafx.application.Application;
import javafx.stage.Stage;
import javafx.event.EventHandler;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.fxml.FXMLLoader;
import javafx.scene.input.MouseEvent;
import javafx.stage.StageStyle;

public class Main extends Application {

    private double xOffSet = 0;
    private double yOffSet = 0;

    public static void main(String[] args) {

        launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("view/LoginPage.fxml"));

        Scene scene = new Scene(root);

        primaryStage.initStyle(StageStyle.UNDECORATED);

        root.setOnMousePressed(new EventHandler<MouseEvent>() {
            @Override
            public void handle(MouseEvent mouseEvent) {
                xOffSet = mouseEvent.getSceneX();
                yOffSet = mouseEvent.getSceneY();
            }
        });

        root.setOnMouseDragged(new EventHandler<MouseEvent>() {
            @Override
            public void handle(MouseEvent mouseEvent) {
                primaryStage.setX(mouseEvent.getSceneX() - xOffSet);
                primaryStage.setY(mouseEvent.getSceneY() - yOffSet);
            }
        });
        
    }
}
我的FXML文件:

控制员:


现在,我不太确定如何解决这个问题,因为我是JavaFX新手。如果有人能指出我的错误在哪里,那就太好了

这是堆栈跟踪的相关部分

java.lang.NullPointerException:需要位置。在 carRental.address.Main.startMain.java:24 我猜下面一行是Main.java文件中的第24行

父根=FXMLLoader.loadgetClass.getResourcesrc/carRental/address/view/LoginPage.fxml; 这条路错了。它必须与已编译java类的位置相关,即文件Main.class而不是Main.java

您的IDE将FXML从src文件夹复制到输出文件夹,我猜该文件夹名为bin

尝试将上面的[java]代码行更改为以下内容:

父根=FXMLLoader.loadgetClass.getResourceview/LoginPage.fxml; 编辑 您已经编辑了您的问题并实施了我建议的更改,这解决了您最初的问题

您的新问题是LoginPage.fxml文件指示JavaFX版本,即15.0.1

请注意,这不是必需的。你可以放心地省略那部分。换句话说,删除以下内容:

xmlns=http://javafx.com/javafx/15.0.1
欢迎来到堆栈溢出!在发布问题之前,请务必阅读常见问题解答。要获得有关您收到的错误的帮助,请不要只是转储代码并要求我们假设问题。您应该回答您的问题并发布确切的错误消息,以及是哪一行代码导致了错误。阅读如何在调试问题中包含a几乎总是最符合您的利益的。我将其更改为,并收到一个新错误:3月17日,2021年12时52分30分javafx.fxml.fxmloader$ValueElement进程值警告:由11.0版的javafx运行时加载带有15.0.1版javafxapi的fxml文档。2@notjames从LoginPage.fxml文件中删除以下内容:xmlns=http://javafx.com/javafx/15.0.1 这不是必需的。我按照您的指示删除了xmlns=。它消除了2021年3月17日12:52:30 P.M.javafx.fxml.fxmloader$ValueElement processValue警告:由版本11.0.2的javafx运行时加载带有版本15.0.1的javafxapi的fxml文档时出错。但本质上是一样的。