0

我正在研究 JXdatepicker,我无法修改不可选择日期的红色,

我找到了一个关于它的主题,但它不起作用“设置以下UIDefaults属性JXMonthView.unselectableDayForeground

请提供任何帮助,

4

1 回答 1

0

因为我急着回答这个问题

但您可以从这里使用 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 使用它。

于 2017-10-10T06:42:40.400 回答