Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
gorbunaak
Зарегистрирован: 31.05.2005 Сообщения: 12 Откуда: Москва
|
Добавлено: Ср Авг 30 2006 13:26 Заголовок сообщения: вопрос по java.awt.Component |
|
|
Компонента не имеет парента(getParent() == null). Всё работает, кроме того, что она не получает фокуса(не дёргается FocusListener). Получение события получения фокуса как-то зависит от парента?
Как-то странно KeyListener срабатывает, а FocusListener нет.
Как такое может быть? |
|
Вернуться к началу |
|
|
Kefir
Зарегистрирован: 16.04.2005 Сообщения: 443 Откуда: Пермь
|
Добавлено: Ср Авг 30 2006 13:51 Заголовок сообщения: |
|
|
Какой нормальный человек еще использует AWT?
Код в студию, так можно долго гадать. _________________ Самоловских Виталий aka Kefir |
|
Вернуться к началу |
|
|
gorbunaak
Зарегистрирован: 31.05.2005 Сообщения: 12 Откуда: Москва
|
Добавлено: Чт Авг 31 2006 20:42 Заголовок сообщения: да вроде разобрался |
|
|
нужно было возродить проект, в нём можно сказать кастомный awt, некий транслятор событий, все дела, бред ваще |
|
Вернуться к началу |
|
|
Kefir
Зарегистрирован: 16.04.2005 Сообщения: 443 Откуда: Пермь
|
Добавлено: Пт Сен 01 2006 05:57 Заголовок сообщения: |
|
|
Дк, проблема то осталась?
Если да, то код в студию, в AWT с фокусами все было очень сложно, насколько мне помнится... _________________ Самоловских Виталий aka Kefir |
|
Вернуться к началу |
|
|
gorbunaak
Зарегистрирован: 31.05.2005 Сообщения: 12 Откуда: Москва
|
Добавлено: Пт Сен 01 2006 09:34 Заголовок сообщения: Re |
|
|
Там используется класс ControlTool(сам апплет), который всегда должен иметь фокус и никому его не передавать. Этот класс типа передаёт всё поступающие ему события компонентам, которые в нём лежат(находятся в апплете). А получение фокуса компонентой этот класс имитирует как
AWTComponent.dispatchEvent(new FocusEvent(AWTComponent, FocusEvent.FOCUS_LOST, false));
так в java 1.4.xx эта компонента захватывала фокус после такого события
я и поменял этот код на
AWTEvent event = new FocusEvent(AWTComponent, FocusEvent.FOCUS_LOST, false);
KeyboardFocusManager.getCurrentKeyboardFocusManager().redispatchEvent(AWTComponent, event);
вроде помогло. |
|
Вернуться к началу |
|
|
|