Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Несколько вопросов по поводу кастомизации компонентов Swing / 3 сообщений из 3, страница 1 из 1
14.01.2013, 19:24:44
    #38109884
kalexi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько вопросов по поводу кастомизации компонентов Swing
1) Как верно изменять стиль компонентов Swing своего приложения: создавать свой набор наследуя Swing-компоненты или меняя Look and Leel?

2) Когда и в каком месте использовать super.paintComponent()?
Как я понимаю, он используется в том случае если нужно рисовать на родительском компоненте, а в случае если мы перерисовываем весь компонент - то им пользоваться не нужно?

3) В каких случаях следует переопределять paintBorder(); Или для изменения границы использовать setBorder?

4) Изменяю стиль меню, а именно JMenu, наследованием. Тут два вопроса:
a) Как отрисовать свою рамку при наведении? У меня получается виндовая скругленная рамка а на ней то, что я рисую.
b) Как изменить стиль Выпадающего меню (где содержаться JItemMenu)?

Спасибо!
...
Рейтинг: 0 / 0
14.01.2013, 19:41:47
    #38109909
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько вопросов по поводу кастомизации компонентов Swing
kalexi1) Как верно изменять стиль компонентов Swing своего приложения: создавать свой набор наследуя Swing-компоненты или меняя Look and Leel?

Всё зависит от того на сколько сильно нужно менять.
Synth LAF предназначен как раз для возможности натянуть свой скин
http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/synth.html
Nimbus имеет кучу мелких настрое для стилизации, которые просто менять.
http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/_nimbusDefaults.html

Реализация своего LAF достаточно трудоёмкая задача, поэтому для реализации чего-то экстравагантного, иногда, проще переопределить отрисовку. Но в этом случае есть большой риск того что отрисовка начнет притормаживать из-за этого.
Так что я бы не рекомендовал ни того ни другого.

kalexi2) Когда и в каком месте использовать super.paintComponent()?
Как я понимаю, он используется в том случае если нужно рисовать на родительском компоненте, а в случае если мы перерисовываем весь компонент - то им пользоваться не нужно?

super.paintComponent() вызывается из переопределенного метода paintComponent() в вашем компоненте. В JavaDoc подробно написано что если вы его не вызываете, то стоит позаботиться о правильном заполнении фона с учетом свойства opaque.

kalexi3) В каких случаях следует переопределять paintBorder(); Или для изменения границы использовать setBorder?

Если у вас очень не традиционный border.
...
Рейтинг: 0 / 0
14.01.2013, 19:46:08
    #38109915
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько вопросов по поводу кастомизации компонентов Swing
kalexi1) Как верно изменять стиль компонентов Swing своего приложения: создавать свой набор наследуя Swing-компоненты или меняя Look and Leel?
Можно попробовать создать свой стиль используя Look and Feel. Или взять готовый.
Это ето конфигурабельно и концептуально для Swing.

Пример готового стиля.
http://www.randelshofer.ch/quaqua/

Там единственная трудность - обработать возможный exception в main и принять решение - можно
ли работать если стиль не включился. +Желательно также протестировать всю графику. Бывает
где-то выползает бок в виде потери возможности видеть едит-боксы или еще что-то в этом роде.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Несколько вопросов по поводу кастомизации компонентов Swing / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]