应用程序启动方法和FXML场景生成器错误“操作失败。确保所选文件是有效的FXML文档”

问题描述 投票:0回答:2

当我通过场景构建器制作我的GUI时,它在eclipse上正常工作,我保存了这个。然后我重新打开eclipse然后这个错误显示。每当我创建一个新项目并重新打开eclipse / restart计算机时,它每次都会向我显示此消息。当我试图打开我的FXML文件时说“**

打开操作失败。确保选择的文件是有效的FXML文档

请帮帮我这是代码

 package application;

public static void main(String[] args) {
     launch(args);
}

@Override
public void start(Stage primaryStage) throws Exception {

    Parent root = FXMLLoader.load(getClass().getResource("MyDocmnt.fxml"));
    Scene scene = new Scene(root);
    primaryStage.setTitle("My Tittle");
    primaryStage.setScene(scene);
    primaryStage.show();

}

java eclipse javafx scenebuilder
2个回答
0
投票

试试这个:

package application;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Parent;
import javafx.scene.Scene;

    public class Main extends Application {

                @Override
                public void start(Stage primaryStage) {
                    try {
                        Parent root = FXMLLoader.load(getClass().getResource("/application/MyDocmnt.fxml"));
                        Scene scene = new Scene(root);
                        primaryStage.setTitle("My Title");
                        primaryStage.setScene(scene);
                        primaryStage.show();
                    } catch(Exception e) {
                        e.printStackTrace();
                    }
                }

        public static void main(String[] args) {
             launch(args);
        }

    }

0
投票

javafx.application.Application类是一个抽象类。而start()方法是Application类的抽象方法。

在Java中,我们必须在扩展抽象类时实现抽象类的所有抽象方法。这里,我们通过重写start()方法来实现抽象方法(start()方法)。

所以,试试这个:

package application;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

    public class Main extends Application{

            public static void main(String[] args) {
                 launch(args);
            }

            @Override
            public void start(Stage primaryStage) throws Exception {

                Parent root = FXMLLoader.load(getClass().getResource("MyDocmnt.fxml"));
                Scene scene = new Scene(root);
                primaryStage.setTitle("My Tittle");
                primaryStage.setScene(scene);
                primaryStage.show();

            } 
    }
© www.soinside.com 2019 - 2024. All rights reserved.