Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在FXML中使用控制器时出现NullPointerException_Java_Fxml - Fatal编程技术网

Java 在FXML中使用控制器时出现NullPointerException

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

我正试图学习JavaFX,却遇到了控制器的NullPointerException。这意味着每次我使用controller实例时,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();
}
这是我的控制器类,基本上什么都没有:

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中设置它,但仍然会发生这种情况。