首页 > 解决方案 > 尝试使用函数将数据传递给新控制器会给出 NullPointerException

问题描述

我试图通过调用新控制器中的函数将数据从一个 javafx 控制器传递到另一个控制器,但每次我这样做时,我都会收到大量错误,而且大多数情况下NullPointerException不知道为什么。

// admin controller
public class AdminController implements Initializable{

    @FXML 
    private Button newTermButton;

    private String error;

    private Stage stage;

    @Override
    public void initialize(URL location, ResourceBundle resources){
    }

    //buttons
    @FXML 
    public void newTermButton() throws IOException {

        FXMLLoader loader = new FXMLLoader();

        loader.setLocation(getClass().getResource("../term/Term.fxml"));

        try {
            loader.load();
        } catch (IOException ex) {
            // error
        }

        TermController tmp = loader.getController();

        //error with this line
        tmp.newTerm();

        javafx.scene.Parent p = loader.getRoot();
        Stage stage = new Stage();
        stage.setScene(new Scene(p));

        stage.showAndWait();

    }
}
// term controller
public class TermController implements Initializable{

    @FXML 
    private TextField termId;
    @FXML 
    private TextField name;

    @FXML 
    private DatePicker sDate;
    @FXML 
    private DatePicker eDate;


    public void loadTerm(int i) {
        System.out.println("load term : " + i);
    }

    public void newTerm() {
        System.out.println("new term");
    }

    @Override
    public void initialize(URL arg0, ResourceBundle arg1) {
        // TODO Auto-generated method stub

    }

}

我正在尝试在TermControllerfrom 中运行一个函数,Admincontroller以便控制器知道天气以从我的数据文件中加载一个术语或创建一个新术语。

标签: javaeclipsejavafx

解决方案


推荐阅读