📅  最后修改于: 2023-12-03 15:31:35.811000             🧑  作者: Mango
在 JavaFX 中,DatePicker 是一个用户界面控件,可让用户从日历中选择日期或手动输入日期。
DatePicker 简单的用法是创建控件并添加到场景图中。用户可以单击 DatePicker 控件,以打开日历,并从中选择日期。
下面是创建DatePicker的基本代码示例:
DatePicker datePicker = new DatePicker();
但是,如果需要在用户选择日期时执行某些操作,则必须注册 DatePicker 控件的监听器。
datePicker.setOnAction(e -> System.out.println("Selected date: " + datePicker.getValue()));
在上面的代码中,我们打印出用户选择的日期。
在场景图中将 DatePicker 添加到一个面板中:
BorderPane pane = new BorderPane();
pane.setCenter(datePicker);
可以通过以下方式设置 DatePicker 的默认值:
LocalDate today = LocalDate.now();
datePicker.setValue(today);
有时需要限制用户可以选择的日期范围。例如,如果您正在编写预订系统,则可能需要确保用户选择的日期只能在未来。
以下代码演示如何限制可选日期范围:
// 限制可选日期范围
LocalDate minDate = LocalDate.of(2019, 6, 1);
LocalDate maxDate = LocalDate.of(2019, 8, 31);
datePicker.setDayCellFactory(picker ->
new DateCell() {
@Override
public void updateItem(LocalDate date, boolean empty) {
super.updateItem(date, empty);
if (date.isBefore(minDate) || date.isAfter(maxDate)) {
setDisable(true);
setStyle("-fx-background-color: #ffc0cb;");
}
}
});
您可以使用 CSS 样式表自定义 DatePicker 样式。例如,以下代码将 DatePicker 控件的颜色设置为红色:
.date-picker .arrow-button {
-fx-background-color: red;
}
要将样式应用于 DatePicker,只需将样式表添加到应用程序的场景图中:
scene.getStylesheets().add("path/to/stylesheet.css");
在本节中,我们学习了如何使用 JavaFX DatePicker 控件。我们看了如何创建 DatePicker 控件以及如何设置其默认值和限制可选日期范围。我们还研究了如何自定义 DatePicker 样式。
要深入了解 DatePicker 控件,请参阅 Oracle 的官方文档。