Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> repaint() конкретный слой 
:(
    Опции темы
BicUser
Дата 1.9.2011, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 29.8.2011

Репутация: нет
Всего: нет



Есть два слоя JPanel.  Нижний содержит графику, верхний - прозрачный с малым количеством графики которую необходимо часто перерисовывать. при вызове repaint() перерисовываются оба слоя. clearRect() также перерисовывает оба слоя. В интернетах советуют использовать BufferImage (мой верхний слой прозрачный - не очень клеится). Есть ли способ перерисовывать только верхний слой (без заполнения его цветом, а потом снова придавания ему прозрачности..такой финт приводит к миганию, с чем изначально и боролся) 
PM MAIL   Вверх
Skipy
Дата 1.9.2011, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 487
Регистрация: 24.8.2006
Где: Москва, Россия

Репутация: 4
Всего: 16



Так, не понял уже с первого предложения. Что такое слои JPanel? Как они расположены? Как это реализовано?


--------------------
С уважением,
Евгений aka Skipy
www.skipy.ru
PM MAIL WWW ICQ   Вверх
BicUser
Дата 1.9.2011, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 29.8.2011

Репутация: нет
Всего: нет



Есть окно JFrame. В нем, по центру располагается менеджер слоев JLayerPane. В этом менеджере один на другом "лежат" два компонента JPanel. Нижний - с непрозрачным фоном, с графикой. Верхний - с прозрачным фоном (setOpaque(false)) с часто меняющейся графикой. Идея состоит в том чтобы изменяющаяся графика верхнего слоя накладывалась на статичную нижнего. Однако при вызове repaint() для верхнего слоя перерисовываются оба слоя. Это не мои кривые руки, в английских интернетах такая проблема имеет пару ссылок в гугле, но пути решения не указано. Полагаю что такая беда связана с тем что метод repaint() выполняется для parent класса (в данном случае контейнера) и имеем то что имеем. Если есть идеи как с этим справиться напишите пожалуйста!!!!!
PM MAIL   Вверх
Skipy
Дата 2.9.2011, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 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 - это тоже почитайте


--------------------
С уважением,
Евгений aka Skipy
www.skipy.ru
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0382 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.