在 FXML 中使用 Controller 时出现 NullPointerException

NullPointerException while using Controller in FXML

我正在尝试了解 JavaFX 并遇到了 Controller 的 NullPointerException。意思是每次我使用控制器实例时,eclipse 都会显示异常。我读过几个类似的问题,但没有一个解决了我的问题。

这是导致异常的代码片段

public GuiController (Stage a) throws IOException  {
    this.priStage = a;
    FXMLLoader fxLoader = new FXMLLoader(getClass().getClassLoader().getResource("View/OverviewWindow.fxml"));  
    overviewController = fxLoader.getController();
    overviewController.getRefreshButton().setText("Oh no"); **// When i remove this line everything works fine!**
    Parent root = fxLoader.load();
    priStage.setScene(new Scene(root));
    priStage.show();
}

这是我的控制器 class,基本上什么都没有:

public class OverviewWindow implements Initializable {
    @FXML TextField searchTextField;

    @FXML
    private Button standardButton;

    @FXML
    private Button refreshButton;

    @FXML
    private RadioButton mitArchivRadioButton;

    @FXML
    private RadioButton nurArchivButton;

    @Override
    public void initialize(URL a, ResourceBundle b) {

    }
    public OverviewWindow() {

    }

}

我的堆栈跟踪

at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at Controller.GuiController.<init>(GuiController.java:31)
at Controller.Controller.init(Controller.java:33)
at main.start(main.java:24)

有人可以帮助我吗?我读了好几天这个问题,并尝试了很多方法来正确设置控制器,但无法做到。谢谢。

首先你必须在写完这段代码后加载fxml..

overviewController = fxLoader.getController();
overviewController.getRefreshButton().setText("Oh no");