Исключение нулевого указателя javafx FXMLLoader.load (); - PullRequest
0 голосов
/ 24 февраля 2019

Я пытаюсь создать всплывающее окно из файла FXML.

Я пытаюсь это сделать в своем главном контроллере:

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("View/InventoryManagement.fxml"));
        primaryStage.setTitle("Inventory Management System");
        primaryStage.setScene(new Scene(root, 1250, 440));
        primaryStage.show();
    }

    public void showPopUp() throws Exception{
        Stage stage = new Stage();
        Parent addPartDialog = FXMLLoader.load(getClass().getResource("View/AddPart.fxml"));
        stage.setTitle("Add Part");
        Scene addPartScene = new Scene(addPartDialog);
        stage.setScene(addPartScene);
        stage.showAndWait();
    }

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

И это мое событие:

public void addPart(ActionEvent event) throws Exception {
    main.showPopUp();
}

Что я не понимаю, так это то, что я могу просто прекрасно открыть VBox, используя в моем контроллере:

final VBox addPartDialog = new VBox();
Scene addPartScene = new Scene(addPartDialog, 600, 500);

Но когда я использую

Parent addPartDialog = FXMLLoader.load(getClass().getResource("View/AddPart.fxml"));
Scene addPartScene = new Scene(addPartDialog);

Этоне работает, потому что он говорит, что у меня есть исключение nullpointer.

...