Javafx 2 java.lang.RuntimeException:java.lang.reflect.InvocationTargetException在设置新控制器的值时

Javafx 2 java.lang.RuntimeException:java.lang.reflect.InvocationTargetException在设置新控制器的值时,javafx-2,Javafx 2,我有以下设置: 2个FXML DoxUsers WelcomeScreen.FXML和Timesheet.FXML,带有控制器WelcomeScreenController.java和TimesheetController.java 在WelcomeScreenController上,我有一个按钮操作处理程序 createTimesheet(ActionEvent event){ // Some working code final Calendar calendarStart

我有以下设置:

2个FXML DoxUsers WelcomeScreen.FXML和Timesheet.FXML,带有控制器WelcomeScreenController.java和TimesheetController.java

在WelcomeScreenController上,我有一个按钮操作处理程序

createTimesheet(ActionEvent event){
    // Some working code

    final Calendar calendarStart = Calendar.getInstance();
    calendarStart.setTime(sdf.parse(tfStartDate.getText()));

    final Calendar calendarEnd = Calendar.getInstance();
    calendarEnd.setTime(sdf.parse(tfEndDate.getText()));

    final FXMLLoader loader = new FXMLLoader(getClass().getResource("Timesheet.fxml"));
    final TimesheetControler timesheetControler = (TimesheetControler)loader.getController();

    timesheetControler.setStartDate(calendarStart);
    timesheetControler.setEndDate(calendarEnd);

    timesheetControler.setHeadlineText("Timesheet (" + tfStartDate.getText() + " - " + tfEndDate.getText() + ")");

    final Node node=(Node) event.getSource();
    final Stage stage=(Stage) node.getScene().getWindow();
    final Parent root = (Parent) loader.load();

    stage.setScene(new Scene(root));
    stage.show();
}
时间表控制器如下所示:

package de.liebich.work.report.emb.ui;

public class TimesheetControler implements Initializable {

@FXML
private Label lHeadline;
@FXML
private GridPane gTimesheetCheck;

private Calendar startDate;
private Calendar endDate;
private String user;
private String password;
private String baseURL;

private List<List<Label>> entries;
@Override
public void initialize(URL arg0, ResourceBundle arg1) {

}

public void setStartDate(Calendar startDate) {
    this.startDate = startDate;
}

public void setEndDate(Calendar endDate) {
    this.endDate = endDate;
}

public void setUser(String user) {
    this.user = user;
}

public void setPassword(String pw) {
    this.password = pw;
}

public void setBaseURL(String baseURL) {
    this.baseURL = baseURL;
}
public void setHeadlineText(final String text){
    lHeadline.setText(text);
}
}
我必须更改什么才能使代码正常工作?

呼叫

loader.load();
行之前

final TimesheetControler timesheetControler = (TimesheetControler) loader.getController();
国际海事组织没有必要解释其原因。如果您仍有疑问,请在评论中询问。

使用

final TimesheetControler timesheetControler = (TimesheetControler)loader.load();
final TimesheetControler timesheetControler = (TimesheetControler)loader.load();