![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| BicUser |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 29.8.2011 Репутация: нет Всего: нет |
Есть два слоя JPanel. Нижний содержит графику, верхний - прозрачный с малым количеством графики которую необходимо часто перерисовывать. при вызове repaint() перерисовываются оба слоя. clearRect() также перерисовывает оба слоя. В интернетах советуют использовать BufferImage (мой верхний слой прозрачный - не очень клеится). Есть ли способ перерисовывать только верхний слой (без заполнения его цветом, а потом снова придавания ему прозрачности..такой финт приводит к миганию, с чем изначально и боролся)
|
|||
|
||||
| Skipy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 487 Регистрация: 24.8.2006 Где: Москва, Россия Репутация: 4 Всего: 16 |
Так, не понял уже с первого предложения. Что такое слои JPanel? Как они расположены? Как это реализовано?
|
|||
|
||||
| BicUser |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 29.8.2011 Репутация: нет Всего: нет |
Есть окно JFrame. В нем, по центру располагается менеджер слоев JLayerPane. В этом менеджере один на другом "лежат" два компонента JPanel. Нижний - с непрозрачным фоном, с графикой. Верхний - с прозрачным фоном (setOpaque(false)) с часто меняющейся графикой. Идея состоит в том чтобы изменяющаяся графика верхнего слоя накладывалась на статичную нижнего. Однако при вызове repaint() для верхнего слоя перерисовываются оба слоя. Это не мои кривые руки, в английских интернетах такая проблема имеет пару ссылок в гугле, но пути решения не указано. Полагаю что такая беда связана с тем что метод repaint() выполняется для parent класса (в данном случае контейнера) и имеем то что имеем. Если есть идеи как с этим справиться напишите пожалуйста!!!!!
|
|||
|
||||
| Skipy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 487 Регистрация: 24.8.2006 Где: Москва, Россия Репутация: 4 Всего: 16 |
Попробуйте поставить opaque=true, но фон не заливать. В этом случае менеджер отрисовки считает, что Вы заполняете все пиксели верхней компоненты и не будет пытаться перерисовать нижнюю.
http://www.skipy.ru/technics/gui_int.html - "Прозрачность компонент и смысл свойства opaque" http://java.sun.com/products/jfc/tsc/artic...ting/index.html - это тоже почитайте |
|||
|
||||
![]()
|
| Правила форума "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. |