![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| PashaOvechkin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 394 Регистрация: 1.4.2007 Где: Riga, Latvia Репутация: 1 Всего: 4 |
Привет!
Сабж
|
|||
|
||||
| PashaOvechkin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 394 Регистрация: 1.4.2007 Где: Riga, Latvia Репутация: 1 Всего: 4 |
или
|
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 4 Всего: 43 |
|
|||
|
||||
| PashaOvechkin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 394 Регистрация: 1.4.2007 Где: Riga, Latvia Репутация: 1 Всего: 4 |
Не годиться...
я в хедер добаляю TableCellRenderer таким образом model.getColumn(0).setHeaderRenderer(...); и он ужасно раздувает хедер... Нужно кастомить именно ячейку... |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 4 Всего: 43 |
тогда аналогично сделать хедеру также и setMaxSize(..) , где ширина=0 и макс высота - высота у всех ячеек все равно одна.
Это сообщение отредактировал(а) COVD - 6.6.2008, 15:53 |
|||
|
||||
| PashaOvechkin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 394 Регистрация: 1.4.2007 Где: Riga, Latvia Репутация: 1 Всего: 4 |
Нет, нтак не получиться.
Ситуация не так проста, как кажется... Если делать как Вы подсказываете, максСизе ограни4ивает "раздув6уюся" часть хедера... и разница мезду кастомной ячеикой и стандартной есть. Её можно видеть в атачменте. Это сообщение отредактировал(а) PashaOvechkin - 6.6.2008, 16:09 Присоединённый файл ( Кол-во скачиваний: 69 )
header.JPG 9,08 Kb |
|||
|
||||
| w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 23 Всего: 54 |
Уже была здесь такая же тема вроде. Не получится сделать такой renderer для заголовка, чтобы не отличался от стандартного при установленном WLAF в стиле XP.
Это сообщение отредактировал(а) w1nd - 8.6.2008, 01:47 -------------------- ![]() ![]() |
|||
|
||||
| PashaOvechkin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 394 Регистрация: 1.4.2007 Где: Riga, Latvia Репутация: 1 Всего: 4 |
w1nd, вы наблюдательны
Правда похожая тема была. Но сейчас я поработал с гуи и понял корень проблемы. И не хочется верить что сделать етого нельзя. (да и проблема актуальна не только но ХП лук ен филе, она имеет место на всех ЛФ) Вот. Хедер становится излищне высоким, и без стандартбых ЛФ ли4 (onMouseOver, и тд и тп) |
|||
|
||||
| w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 23 Всего: 54 |
Этого нельзя сделать с WLAF в XP-стиле. Во всех остальных случаях придётся использовать классы, специфичные для каждого конкретного PLAF (напрямую или выдирая куски кода оттуда), к сожалению. Кстати, а зачем вы вообще замещаете стандартный рендерер? Это сообщение отредактировал(а) w1nd - 9.6.2008, 00:17 -------------------- ![]() ![]() |
|||
|
||||
| PashaOvechkin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 394 Регистрация: 1.4.2007 Где: Riga, Latvia Репутация: 1 Всего: 4 |
Что мне нужно сейчас - ето просто установить размеры хедера... А ето явно не зависит от ЛФ, так как размеры одинаково раздуты при ЛЮБОМ ЛФ.
Зачем нужно замещать рендерер? А каким образом иначе можно вставить чек бокс в хедер? (Нужно реализовать select All функцию в таблице... Может есть предложения?) Это сообщение отредактировал(а) PashaOvechkin - 9.6.2008, 10:54 |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 4 Всего: 43 |
Стандартный рендерер - класс, наследуемый от JLabel. Ваш кастомный рендерер, очевидно, надо наследовать от JPanel. В нем разместить чекбокс и лейбол с текстом. Ваш рендерер должен возвращать в методе public Component getTableCellRendererComponent(... панель, т.е. this. Размер этой панели будет регулироваться извне. Если вы зададите для хедера prefferedSize, Max/MinSize, то и панель будет подчиняться этим установкам точно также, как это делает дефолтный рендерер наследуемый от JLabel.
|
|||
|
||||
| w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 23 Всего: 54 |
Не всё так просто. На стандартном рендерере висит UI-класс, который может рисовать что-то совершенно особенное, и это особенное очень не хочется терять (градиенты, финтифлюшечки всякие; в случае с WLAF-XP ээто особенное находится вовсе в нативном коде). Можно поступить следующим образом: создать renderer-обёртку, который будет делегировать рисование обёрнутому, но добавлять поверх что-то своё - таким образом можно будет сохранить фон. Если очень хочется в заголовок поместить компонент, то встраивать его следует так же, как встраивается editor в таблицу. Это сообщение отредактировал(а) w1nd - 9.6.2008, 23:06 -------------------- ![]() ![]() |
|||
|
||||
| PashaOvechkin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 394 Регистрация: 1.4.2007 Где: Riga, Latvia Репутация: 1 Всего: 4 |
Спасибо за отзывчивость ребята!
w1nd, а можно пример кода? Примерно как имелось ввиду отнаследовать стандартный УИ рендерер? На самом деле проблему уже решил, но иначе (хуже) переопределил paintComponent(Graphics g) для всех актуалņых PLAFов Не кашерно... А что поделаешь?! Иначе выглядит как в сортире |
|||
|
||||
| w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 23 Всего: 54 |
Ну что-то в этом духе:
Или, пожалуй, будет даже лучше добавлять внутрь своего рендерера исходный. -------------------- ![]() ![]() |
|||
|
||||
| PashaOvechkin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 394 Регистрация: 1.4.2007 Где: Riga, Latvia Репутация: 1 Всего: 4 |
w1nd, а в чём разница между : paint и paintComponent ??
Хочется понять из глубины |
|||
|
||||
| PashaOvechkin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 394 Регистрация: 1.4.2007 Где: Riga, Latvia Репутация: 1 Всего: 4 |
Это сообщение отредактировал(а) PashaOvechkin - 12.6.2008, 18:43 |
|||
|
||||
| w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 23 Всего: 54 |
Чтобы рисовать поверх нарисованного look-n-feel'ом.
-------------------- ![]() ![]() |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |