
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
25.03.2007, 15:46:52
|
|||
|---|---|---|---|
|
|||
про Листеренеры и панели |
|||
|
#18+
Доброго веремени суток уважаемые. просветите такой вопрос плиз. имеем контейнер (JPanel), на него навешиваем MouseListener. проверяем - методы листенера вызываеются. далее добавляю панель(еще одну) в контейнер. на неё также навешиваю МouseListener, теперь вызываются методы нового листенера, при возникновении событий, а методы листенера контейнера не вызываются. новая панель не передает событие дальше контейнеру. в какую сторону смотреть ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.03.2007, 16:02:07
|
|||
|---|---|---|---|
про Листеренеры и панели |
|||
|
#18+
Попробуйте переопределить метод processEvent в контейнере. Хотя, скорее всего не прокатит... Можно совсем жестко поступить - подсунуть свою реализацию EventQueue - и там определять где событие произошло... Но это слишком громоздко будет, и неуклюже. Может и более изящное решение есть - но я его не знаю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.03.2007, 16:05:26
|
|||
|---|---|---|---|
про Листеренеры и панели |
|||
|
#18+
Один и тот же листенер навесте и на родителя и на потомка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.03.2007, 20:35:44
|
|||
|---|---|---|---|
|
|||
про Листеренеры и панели |
|||
|
#18+
а ларчик открывался просто! для тех кому интересно : addMouseMotionListener(new MouseMotionListener(){ public void mouseDragged(MouseEvent e) { MouseEvent e1 = SwingUtilities.convertMouseEvent(MainRect.this, e, canvas); canvas.dispatchEvent(e1); } public void mouseMoved(MouseEvent e) { MouseEvent e1 = SwingUtilities.convertMouseEvent(MainRect.this, e, canvas); canvas.dispatchEvent(e1); } }); addMouseListener(new MouseListener(){ public void mouseClicked(MouseEvent arg0) { MouseEvent e = SwingUtilities.convertMouseEvent(MainRect.this, arg0, canvas); canvas.dispatchEvent(e); System.out.println("Click"); } public void mouseEntered(MouseEvent arg0) { MouseEvent e = SwingUtilities.convertMouseEvent(MainRect.this, arg0, canvas); canvas.dispatchEvent(e); } public void mouseExited(MouseEvent arg0) { MouseEvent e = SwingUtilities.convertMouseEvent(MainRect.this, arg0, canvas); canvas.dispatchEvent(e); } public void mousePressed(MouseEvent arg0) { MouseEvent e = SwingUtilities.convertMouseEvent(MainRect.this, arg0, canvas); canvas.dispatchEvent(e); } public void mouseReleased(MouseEvent arg0) { MouseEvent e = SwingUtilities.convertMouseEvent(MainRect.this, arg0, canvas); canvas.dispatchEvent(e); } т.е. конвертируем месягу в пределы нового контейнера и принудительно передаем туда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&tablet=1&tid=2146288]: |
0ms |
get settings: |
14ms |
get forum list: |
17ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
46ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
69ms |
get tp. blocked users: |
3ms |
| others: | 269ms |
| total: | 448ms |

| 0 / 0 |
