|
|
|
Несколько вопросов по поводу кастомизации компонентов Swing
|
|||
|---|---|---|---|
|
#18+
1) Как верно изменять стиль компонентов Swing своего приложения: создавать свой набор наследуя Swing-компоненты или меняя Look and Leel? 2) Когда и в каком месте использовать super.paintComponent()? Как я понимаю, он используется в том случае если нужно рисовать на родительском компоненте, а в случае если мы перерисовываем весь компонент - то им пользоваться не нужно? 3) В каких случаях следует переопределять paintBorder(); Или для изменения границы использовать setBorder? 4) Изменяю стиль меню, а именно JMenu, наследованием. Тут два вопроса: a) Как отрисовать свою рамку при наведении? У меня получается виндовая скругленная рамка а на ней то, что я рисую. b) Как изменить стиль Выпадающего меню (где содержаться JItemMenu)? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 19:24:44 |
|
||
|
Несколько вопросов по поводу кастомизации компонентов Swing
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 19:41:47 |
|
||
|
Несколько вопросов по поводу кастомизации компонентов Swing
|
|||
|---|---|---|---|
|
#18+
kalexi1) Как верно изменять стиль компонентов Swing своего приложения: создавать свой набор наследуя Swing-компоненты или меняя Look and Leel? Можно попробовать создать свой стиль используя Look and Feel. Или взять готовый. Это ето конфигурабельно и концептуально для Swing. Пример готового стиля. http://www.randelshofer.ch/quaqua/ Там единственная трудность - обработать возможный exception в main и принять решение - можно ли работать если стиль не включился. +Желательно также протестировать всю графику. Бывает где-то выползает бок в виде потери возможности видеть едит-боксы или еще что-то в этом роде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 19:46:08 |
|
||
|
|

start [/forum/topic.php?fid=59&tid=2130193]: |
0ms |
get settings: |
13ms |
get forum list: |
17ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
45ms |
get topic data: |
16ms |
get forum data: |
4ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 278ms |
| total: | 445ms |

| 0 / 0 |
