为了账号安全,请及时绑定邮箱和手机立即绑定

JavaFX:线程“ JavaFX Application Thread”中的异常

JavaFX:线程“ JavaFX Application Thread”中的异常

不负相思意 2021-05-03 15:49:05
我正在Java FX项目上工作,我创建了两个FXML文件,我想将另一个窗格加载到主要的麻烦,即Border Pane。我想将另一个窗格加载到“边框窗格”中心区域!这是我的项目的入口点,它是一个Java文件package javafxapplication8;    import java.io.IOException;    import javafx.application.Application;    import javafx.fxml.FXML;    import javafx.fxml.FXMLLoader;    import javafx.scene.Parent;    import javafx.scene.Scene;    import javafx.scene.input.MouseEvent;    import javafx.scene.layout.BorderPane;    import javafx.stage.Stage;    /**     *     * @author Anu     */    public class JavaFXApplication8 extends Application {        @Override        public void start(Stage stage) throws Exception {            Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));            Scene scene = new Scene(root);            stage.setScene(scene);            stage.show();        }        @FXML        void handleButtonAction(MouseEvent event) throws IOException {        }        /**         * @param args the command line arguments         */        public static void main(String[] args) {            launch(args);        }    }之后,这将显示主要的FXML文件,该文件显示了我的“边框”窗格<?xml version="1.0" encoding="UTF-8"?>    <?import com.jfoenix.controls.JFXButton?>    <?import javafx.scene.layout.AnchorPane?>    <?import javafx.scene.layout.BorderPane?>但是,当我单击“按钮”时,这给了我很多错误!我的项目结构:有人可以告诉我想念我的地方吗?谢谢你。
查看完整描述

1 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

有两个原因

javafx.stage.Stage.class.getResource("FXML.fxml")

返回null是导致异常的原因:

  • 不是以开头的资源/是相对于该类解析的,即,在这种情况下,java正在寻找的资源/javafx/stage/FXML.fxml不是您的资源的实际位置

  • Stage由于某种原因,似乎使用了无法解析jar中资源的其他类加载器。确保使用可以访问jar的类加载器加载的其他类,例如,使用FXMLDocumentController.class

loader.setLocation(FXMLDocumentController.class.getResource("/javafxapplication8/FXML.fxml"));

注意:您可能需要使用Clean and Build将新.class文件添加到jar中。


查看完整回答
反对 回复 2021-05-12
  • 1 回答
  • 0 关注
  • 348 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信