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

我正在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?>


但是,当我单击“按钮”时,这给了我很多错误!

我的项目结构:

http://img3.mukewang.com/609b882800015cee02690238.jpg

有人可以告诉我想念我的地方吗?谢谢你。


不负相思意
浏览 349回答 1
1回答

胡子哥哥

有两个原因javafx.stage.Stage.class.getResource("FXML.fxml")返回null是导致异常的原因:不是以开头的资源/是相对于该类解析的,即,在这种情况下,java正在寻找的资源/javafx/stage/FXML.fxml不是您的资源的实际位置Stage由于某种原因,似乎使用了无法解析jar中资源的其他类加载器。确保使用可以访问jar的类加载器加载的其他类,例如,使用FXMLDocumentController.classloader.setLocation(FXMLDocumentController.class.getResource("/javafxapplication8/FXML.fxml"));注意:您可能需要使用Clean and Build将新.class文件添加到jar中。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java