Javafx 2 java.lang.RuntimeException:java.lang.reflect.InvocationTargetException在设置新控制器的值时
我有以下设置: 2个FXML DoxUsers WelcomeScreen.FXML和Timesheet.FXML,带有控制器WelcomeScreenController.java和TimesheetController.java 在WelcomeScreenController上,我有一个按钮操作处理程序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
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();