SwingX, как получить дочерние компоненты JXMonthView? - PullRequest
3 голосов
/ 28 марта 2011

Кто-нибудь имел опыт использования SwingX?Я хочу использовать JXMonthView и изменить его компоненты.Я могу использовать это без пота.Но когда я пытаюсь получить в свои руки основные дочерние компоненты, я терплю неудачу.Я хотел бы изменить стиль шрифта и цвет, используемый только компонентом, который отображает месяц.Я использую SwingX 1.6.2.

Ответы [ 2 ]

2 голосов
/ 29 марта 2011

По сути, JXMonthView не имеет компонентов для изменения (за одним исключением, см. Ниже). Вместо этого его рисование выполняется с помощью механизма рендеринга, аналогичного рендерингу ячеек таблицы / дерева / списка. SwingX'ish способ настроить визуальные свойства рендеринга состоит в том, чтобы украсить компонент рендеринга с помощью Highlighter.

К сожалению, эволюция застряла где-то посередине: для этого нет легкой и по-настоящему общественной поддержки. Сотрудники в plaf.basic:

  • CalendarRenderingHandler: интерфейс для реализации
  • BasicCalendarRenderingHandler: реализация по умолчанию для частного пакета
  • BasicMonthViewUI: есть фабричный метод для создания и возврата обработчика для использования

Таким образом, настройка визуальных элементов JXMonthView является довольно трудоемкой задачей, требующей большого количества подклассов. На более яркой стороне: у swinglabs-demos есть пример того, как это можно сделать

MonthViewExtDemo

CU Жанетт

PS: возможно, вы захотите опубликовать конкретные вопросы по SwingX на SwingLabs Forum - хотя он не так активен, как раньше, из-за проблем с миграцией java.net, вздох

1 голос
/ 29 марта 2011

Я думаю, что вы можете просто получить MonthViewUI и внести необходимые изменения. Взгляните на JXMonthView источник .

...