2013-04-10 36 views
0

我工作的JXdatepicker,我不能修改红色不可选择的日期,JXdatepicker:编辑不可选择的日期红十字会颜色

我发现了一个关于它的话题,但它不工作“设置以下UIDefaults财产JXMonthView.unselectableDayForeground

任何帮助,请

+0

JXDatePicker docs at http://www.jdocs.com/swingx/1.0/org/jdesktop/swingx/JXDatePicker.html – emecas 2013-04-10 13:28:15

+0

hmm ... worksforme,假设您想更改montView中交叉的颜色和它在创建日期选择器之前设置。你有哪个swingx版本? – kleopatra 2013-04-10 14:02:01

+0

1.6.1! 我使用这个指令来解决它,但它也没用: UIManager.put(“JXMontView.unselectableDayForeground”,new ColorUIResource(Color.GREEN)); – 2013-04-10 19:41:09

回答

0

,因为我是在急于回答这个

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

然后去功能initMonthview在JXDatepicker.java 这一个 Color.Black您覆盖它可以使用自己的颜色。 这解决了当您将jlabel文本颜色设置为白色并使用JXdatepicker的背景颜色隐藏plaf时的问题。

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使用它。

相关问题