Java 在FXML中使用控制器时出现NullPointerException
我正试图学习JavaFX,却遇到了控制器的NullPointerException。这意味着每次我使用controller实例时,eclipse都会显示异常。我读过几个类似的问题,但没有一个解决了我的问题 下面是导致异常的代码段Java 在FXML中使用控制器时出现NullPointerException,java,fxml,Java,Fxml,我正试图学习JavaFX,却遇到了控制器的NullPointerException。这意味着每次我使用controller实例时,eclipse都会显示异常。我读过几个类似的问题,但没有一个解决了我的问题 下面是导致异常的代码段 public GuiController (Stage a) throws IOException { this.priStage = a; FXMLLoader fxLoader = new FXMLLoader(getClass().getClas
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();
}
这是我的控制器类,基本上什么都没有:
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)
java.lang.Thread.run上的(未知源代码)
原因:java.lang.NullPointerException
位于Controller.GuiController.(GuiController.java:31)
位于Controller.Controller.init(Controller.java:33)
在main.start(main.java:24)
有人能帮我吗?我读了好几天关于这个问题的书,尝试了很多方法来设置控制器,但都没有成功。谢谢 编写此代码后,首先必须加载fxml
overviewController = fxLoader.getController();
overviewController.getRefreshButton().setText("Oh no");
首先,您必须在编写此代码后加载fxml
overviewController = fxLoader.getController();
overviewController.getRefreshButton().setText("Oh no");
我对NullPointerException有一些想法,但不知道为什么会这样。我初始化了控制器对象,在FXMLLoader中设置它,但仍然会发生这种情况。可能的重复我对NullPointerException有一些想法,但不知道为什么会出现这种情况。我初始化了控制器对象,在FXMLLoader中设置它,但仍然会发生这种情况。