gpt4 book ai didi

java - DateCell 在应用 "selected"样式后没有改变

转载 作者:行者123 更新时间:2023-11-28 03:25:02 24 4
gpt4 key购买 nike

我有一个 DatePicker 并添加了这个 Listener。

datePicker.showingProperty().addListener((observable, oldValue, showing) -> {
if(showing) {
//Get the content
DatePickerContent content = (DatePickerContent)((DatePickerSkin)datePicker.getSkin()).getPopupContent();
content.lookupAll(".day-cell").forEach(cell -> {
cell.getStyleClass().add("selected");
System.out.println(cell.getStyleClass() + " Day: " + ((DateCell) cell).getItem());
});
}
});

但是在显示 DatePicker 并选择一个日期后,只有一个单元格显示为被选中。

DatePicker with one day selected

即使在控制台中打印出的样式都被“选中”,但让我感到疑惑的是,真正被选中的 Cell 有 2 个“选中”样式。这是控制台输出(部分):

cell date-cell day-cell selected Day: 2017-07-11
cell date-cell day-cell selected Day: 2017-07-12
cell date-cell day-cell selected selected Day: 2017-07-13
cell date-cell day-cell selected Day: 2017-07-14
cell date-cell day-cell selected Day: 2017-07-15

那么为什么只有一个单元格显示为选中状态?

最佳答案

不要为该属性添加监听器,只需设置datePicker.onShown

//Get the content
datePicker.onShown(e -> {
DatePickerContent content = (DatePickerContent)((DatePickerSkin)datePicker.getSkin()).getPopupContent();
content.lookupAll(".day-cell").forEach(cell -> {
cell.getStyleClass().add("selected");
});
}

关于java - DateCell 在应用 "selected"样式后没有改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45016887/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com