如何在javaFx(场景生成器)的日期选择器中禁用过去的日期
我在场景生成器上创建了一个日期选择器。我想让它禁用日期,以迫使用户从当前日期选择日期,但我不知道如何做到这一点。我看到的所有示例都不是用java编写的(当然我的项目也是用java编写的)。我也有同样的问题。这是一段对我有用的代码如何在javaFx(场景生成器)的日期选择器中禁用过去的日期,javafx,datepicker,Javafx,Datepicker,我在场景生成器上创建了一个日期选择器。我想让它禁用日期,以迫使用户从当前日期选择日期,但我不知道如何做到这一点。我看到的所有示例都不是用java编写的(当然我的项目也是用java编写的)。我也有同样的问题。这是一段对我有用的代码 DatePicker dp = new DatePicker(); dp.setDayCellFactory(picker -> new DateCell() { public void updateItem(LocalDate date, boo
DatePicker dp = new DatePicker();
dp.setDayCellFactory(picker -> new DateCell() {
public void updateItem(LocalDate date, boolean empty) {
super.updateItem(date, empty);
LocalDate today = LocalDate.now();
setDisable(empty || date.compareTo(today) < 0 );
}
});
DatePicker dp=newdatepicker();
dp.setDayCellFactory(选择器->新建日期单元格(){
public void updateItem(LocalDate,布尔值为空){
super.updateItem(日期,空);
LocalDate today=LocalDate.now();
setDisable(空| | date.compareTo(今天)<0);
}
});
这将使与LocalDate.now()相比(返回当前日期)较小的日期不可用,因此前几天不可用。Callback callB=new Callback(){
Callback<DatePicker, DateCell> callB = new Callback<DatePicker, DateCell>() {
@Override
public DateCell call(final DatePicker param) {
return new DateCell() {
@Override
public void updateItem(LocalDate item, boolean empty) {
super.updateItem(item, empty); //To change body of generated methods, choose Tools | Templates.
LocalDate today = LocalDate.now();
setDisable(empty || item.compareTo(today) < 0);
}
};
}
};
selectedDate.setDayCellFactory(callB);
@凌驾
公共DateCell调用(最终日期选择器参数){
返回新的DateCell(){
@凌驾
public void updateItem(LocalDate项,布尔值为空){
super.updateItem(item,empty);//要更改生成的方法体,请选择工具|模板。
LocalDate today=LocalDate.now();
setDisable(空的| |项。比较到(今天)<0);
}
};
}
};
选择日期。设置日期单元格工厂(callB);
在日期选择器中禁用过去的日期请参阅。它有一个例子“实现一个日单元工厂来禁用某些天”。