我正在研究 JXdatepicker,我无法修改不可选择日期的红色,
我找到了一个关于它的主题,但它不起作用“设置以下UIDefaults
属性JXMonthView.unselectableDayForeground
请提供任何帮助,
因为我急着回答这个问题
但您可以从这里使用 swingx 源代码 https://github.com/cuba-platform/swingx-core/tree/master/src/main/java/org/jdesktop/swingx
然后转到 JXDatepicker.java 中的函数 initMonthview 用这个 Color.Black 覆盖它,您可以使用自己的颜色。这解决了当您有一个 jlabel 文本颜色为白色的 plaf 并且它以 JXdatepicker 的背景颜色隐藏时的问题。
private void initMonthView() {
_monthView = new JXMonthView();
// _monthView.setSelectionModel(new SingleDaySelectionModel());
_monthView.setTraversable(true);
_monthView.addPropertyChangeListener(getMonthViewListener());
_monthView.setDayForeground(Calendar.SUNDAY, Color.black);
_monthView.setDayForeground(Calendar.MONDAY, Color.black);
_monthView.setDayForeground(Calendar.TUESDAY, Color.black);
_monthView.setDayForeground(Calendar.WEDNESDAY, Color.black);
_monthView.setDayForeground(Calendar.THURSDAY, Color.black);
_monthView.setDayForeground(Calendar.FRIDAY, Color.black);
_monthView.setDayForeground(Calendar.SATURDAY, Color.black);
}
然后设置您喜欢的颜色然后将其导出为罐子玩得开心。
或者更确切地说,您可以完成可插拔外观和感觉的艰苦工作。
或者,您可以在 JXDatepicker.java 中创建一个新的构造函数,该构造函数采用具有特定颜色集的 JXMonthview 对象
意味着创建一个对象
_monthView = new JXMonthView();
// _monthView.setSelectionModel(new SingleDaySelectionModel());
_monthView.setTraversable(true);
_monthView.addPropertyChangeListener(getMonthViewListener());
_monthView.setDayForeground(Calendar.SUNDAY, Color.black);
_monthView.setDayForeground(Calendar.MONDAY, Color.black);
_monthView.setDayForeground(Calendar.TUESDAY, Color.black);
_monthView.setDayForeground(Calendar.WEDNESDAY, Color.black);
_monthView.setDayForeground(Calendar.THURSDAY, Color.black);
_monthView.setDayForeground(Calendar.FRIDAY, Color.black);
_monthView.setDayForeground(Calendar.SATURDAY, Color.black);
现在添加
创建一个新的构造函数
JXDatepicker(JXMonthView temp){
_monthview = temp;
JXDatepicker();
}
将其导出为 jar 使用它。