SwingX如何获取JXMonthView的子组件?

时间:2011-03-28 19:56:12

标签: java swing swingx

有没有使用SwingX的经验? 我想使用JXMonthView并修改其组件。我可以毫不费力地使用它。 但是当我试图真正掌握底层子组件时,我失败了。 我想更改仅显示月份的组件使用的字体样式和颜色。 我使用的是SwingX 1.6.2。

2 个答案:

答案 0 :(得分:2)

基本上,JXMonthView 没有要修改的组件(对于一个例外,请参见下文)。相反,它的绘制是通过渲染机制完成的,类似于表格/树/列表的单元格渲染。 SwingX'ish定制渲染的视觉属性的方法是用Highlighter来装饰渲染组件。

不幸的是,进化陷入了中间的某个地方:这样做并不容易,也没有真正的公众支持。合作者在plaf.basic:

  • CalendarRenderingHandler:实现的界面
  • BasicCalendarRenderingHandler:一个包私有默认实现
  • BasicMonthViewUI:有一个工厂方法来创建和返回使用的处理程序

因此,定制JXMonthView的视觉效果非常繁琐,涉及大量子类化。在更光明的一面:swinglabs-demos有一个如何做到的例子

MonthViewExtDemo

CU 珍

PS:您可能会考虑在SwingLabs Forum发布SwingX特定问题 - 尽管它不像以前那样活跃,因为java.net的迁移问题,叹息

答案 1 :(得分:1)

我认为你可以获得MonthViewUI并进行所需的更改。看看JXMonthView source