【发布时间】:2017-09-27 14:16:06
【问题描述】:
我正在尝试实现CalendarPicker,以便当我在 JavaFX 中按下Button时它将在新窗口中打开
我为我的日历添加了一些代码:
@FXML
public void dateTimePicker(Stage primaryStage){
CalendarPicker dateTime = new CalendarPicker();
dateTime.withCalendar(Calendar.getInstance());
dateTime.withShowTime(Boolean.TRUE);
dateTime.withLocale(Locale.ENGLISH);
dateTime.calendarProperty().addListener(new ChangeListener<Calendar>() {
public void changed(ObservableValue<? extends Calendar> ov, Calendar t, Calendar t1) {
System.out.println("Selected date: "+t1.getTime().toString());
}
});
StackPane root = new StackPane();
root.getChildren().add(dateTime);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Date & Time from JFXtras 2.2");
primaryStage.setScene(scene);
primaryStage.show();
}
然后在我的 FXML 中添加了一个按钮
<Button id="dateTimePicker" fx:id="dateTimePicker" layoutX="14.0" layoutY="398.0" mnemonicParsing="false" text="Start" />
最后初始化了我的Button
@FXML
private Button dateTimePicker,
我的按钮实际上并没有做任何事情——没有打开新窗口。我没有收到任何错误,但在 Eclipse 中确实收到了警告
Parameter 'primaryStage' is not assignable to javafx.event.Event
我做错了什么?
编辑
将onAction 属性添加到按钮已停止我的应用程序运行。错误是:
Error resolving onAction='#dateTimePicker', either the event handler is not in the Namespace or there is an error in the script.
【问题讨论】:
-
你能修复 FXML sn-p 吗?我猜你有
fx:id="openComportButton"和onAction="#dateTimePicker"。那正确吗?你到底想做什么?当用户按下按钮时,应该发生什么? -
糟糕,我将错误的代码复制到我的问题中。我正在尝试按下按钮打开 dateTimePicker 以便用户选择开始日期。
-
所以我的意思是 dateTimePicker 应该在新窗口中打开。
-
你能edit你的问题相应吗?修复 FXML,澄清你的意思。
-
<Button .../>上没有onAction属性?
标签: java javafx datetimepicker