javafx - 使用 javafx 将 DatePicker 中的日期变灰无法按预期工作

标签 javafx datepicker

我只希望用户选择今天+ future 10 天的日期。但正如您所看到的,它在当月运行得非常好。但在 2 月,您可以再次选择日期,尽管它们是在我希望可选择的 10 天之后。我只想制作17.1。 - 27.1。可选择。

enter image description here

这就是我尝试过的:(这看起来不太好,但足以说明问题并让你们帮助我。)

 @Override
    public void start(Stage stage) throws IOException {
        DatePicker dpDate = new DatePicker();
        dpDate.setDayCellFactory(param -> new DateCell() {
            @Override
            public void updateItem(LocalDate date, boolean empty) {
                super.updateItem(date, empty);
                setDisable(empty || date.compareTo(LocalDate.now()) > 10 || date.compareTo(LocalDate.now()) < 0);
            }
        });
        Scene scene = new Scene(dpDate, 320, 240);
        stage.setTitle("Hello!");
        stage.setScene(scene);
        stage.show();
    }

最佳答案

LocalDate.compareTo() 仅保证返回负数、零或正数,具体取决于日期是在提供的日期之前、等于还是之后。无法保证(或期望)它返回两个日期之间的天数。

使用

    dpDate.setDayCellFactory(param -> new DateCell() {
        @Override
        public void updateItem(LocalDate date, boolean empty) {
            super.updateItem(date, empty);
            setDisable(empty || 
                       date.isBefore(LocalDate.now()) ||
                       date.isAfter(LocalDate.now().plusDays(10))
            );
        }
    });

关于javafx - 使用 javafx 将 DatePicker 中的日期变灰无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75150785/

相关文章:

javafx - 从JavaFx访问网络摄像头

css - fxml 中的组合框菜单项字体更改

java - 如何在日期选择器 appium 中发送日期(Android API 19,版本 1.2.4.1)

jquery - BootStrap Datepicker 从 View 到 Controller 返回 null

javascript - Jquery 从文本字段中调出日期选择器

java - 确定 JavaFX WebView 何时完成渲染

java - RichTextFX 的撤消功能无法正常工作

checkbox - 预选一个 JavaFX CheckComboBox

jquery - 如何删除或禁用日期选择器或其他输入中先前选择的值?

cocoa - NSDatePicker 正在更改系统时区的时间。我想停止更改日期选择器的日期值