У меня есть диалоговое окно поиска с JTextField, которое используется в качестве поля поиска.
Когда пользователь что-то печатает, он ищет в БД, показывает результат в JTable и выбирает первый элемент в нем.
Если первый результат - это то, что они искали, я хочу, чтобы они быстро приняли диалоговое окно, нажав Enter (пока фокус JTextField сфокусирован).
Итак, я добавил KeyListener в JTextField, и он работает нормально.
Теперь проблема:
Открываемый пользователь может открыть диалоговое окно, нажав клавишу «Ввод», когда кнопка «Поиск» в родительском кадре диалогового окна находится в фокусе.
Отображается диалоговое окно, и JTextField получает событие keyReleased (от клавиши Enter, которая его отображала), поэтому оно отображается и закрывается. Если пользователь удерживает клавишу Enter нажатой, то JTextField получает события keyPressed, keyTyped и keyReleased.
Как можно исправить, не прибегая к уродливым временным решениям?
Платформа Windows 7 x64, кстати.
Спасибо.