📜  JavaFX | DatePicker 示例(1)

📅  最后修改于: 2023-12-03 15:31:35.811000             🧑  作者: Mango

JavaFX | DatePicker 示例

在 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 的默认值

可以通过以下方式设置 DatePicker 的默认值:

LocalDate today = LocalDate.now();
datePicker.setValue(today);
限制 DatePicker 的可选日期范围

有时需要限制用户可以选择的日期范围。例如,如果您正在编写预订系统,则可能需要确保用户选择的日期只能在未来。

以下代码演示如何限制可选日期范围:

// 限制可选日期范围
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;");
            }
        }
    });
自定义 DatePicker 的样式

您可以使用 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 的官方文档。