JXdatepicker:编辑不可选日期的红十字颜色

时间:2013-04-10 13:04:08

标签: java swing swingx

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

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

任何帮助,请

1 个答案:

答案 0 :(得分:0)

因为我急着回答这个问题

但您可以使用swingx源代码 从这里 https://github.com/cuba-platform/swingx-core/tree/master/src/main/java/org/jdesktop/swingx

然后转到JXDatepicker.java中的函数initMonthview 用这个覆盖它 Color.Black你可以使用自己的颜色。 当你有一个plalab,jlabel文本颜色为白色并且它隐藏了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);

    }

然后设置你喜欢的颜色然后将它导出为一个有趣的jar。

或者更确切地说,你可以做一件可插拔的外观。

或者你可以在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使用它。