![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Reptor |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: 1 Всего: 0 |
Есть class CPanel extends JPanel и у него переопределён paintComponent и есть ещё class PopUp extends JPopupMenu у которого
и это меню добавляется при шелчке мышки на панеле
так вот мне нужно как то в
в обработчике выбора меню перерисовать саму панель но что то не выходит. Пробовал через getParent() но там ошибка вываливается.. как из обработчика попапа перерисовать панель CPanel?? |
||||||
|
|||||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 10 Всего: 118 |
В отдельном треде.
Штука в том, что перерисовка и обработка событий от мышки/клавиатуры происходит в одном потоке. Посему надо создавать отльеный поток и в нем что-то делать. |
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: 1 Всего: 0 |
дело в том что когда у меня это попап меню было создавалась не через класс а просто напрямую в панеле то метод repaint() был виден в обработчике и с перерисовкой не было проблем. А сейчас это отдельным классом (class PopUp extends JPopupMenu) и в нём не видно этой панели.
|
|||
|
||||
| Orange |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 6.9.2004 Где: Russia, Moscow Репутация: 1 Всего: 5 |
Когда попап создавался в классе панели, то он прорисововался вместе со всеми остальными компонентами(то есть был один главный тред, в котором всё рисовалось). Когда ты вынес её в отдельный класс, то прорисовка произойдёт только тогда, когда завершится основной трэд, который твоя панель. А завершиться он только когда произойдёт dispose(поправьте если я не прав) Так что создавай отдельный поток. --------------------
Пару дней назад я познакомился с мальчиком...... |
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: 1 Всего: 0 |
а можно показать на какомто маленьком примере.. я просто с потоками не имел дело
|
|||
|
||||
| Orange |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 6.9.2004 Где: Russia, Moscow Репутация: 1 Всего: 5 |
В обработчике запускаешь
Это сообщение отредактировал(а) Orange - 24.7.2008, 12:48 --------------------
Пару дней назад я познакомился с мальчиком...... |
||||
|
|||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: 1 Всего: 0 |
Orange, что то я не совсем понимаю... а что с того что я зделаю попап отдельным потоком?? ведь перерисовка должна выполняться в классе попапа при клике на какомто из под меню... чем тут поток поможет? Класс попапа то не знает про мою панель. Как тогда она перерисуется?
|
|||
|
||||
![]()
|
| Правила форума "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. |