我试图了解JavaFX并遇到控制器的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();
}
这是我的Controller类,基本上没什么:
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)
有人能帮助我吗?我读了几天这个问题,并尝试多次设置控制器,但无法做到这一点。谢谢。
答案 0 :(得分:0)
首先你必须在写完这段代码后加载fxml ..
overviewController = fxLoader.getController();
overviewController.getRefreshButton().setText("Oh no");