2012-01-15 7 views
0

Я разрабатываю приложение, которое требует нескольких JFrames. JFrame записывает в файл, затем удаляется. Я хочу, чтобы KeyListener прослушивал одно и то же нажатие клавиши во всем проекте, не создавая KeyListener в каждом классе. Есть ли способ?Как добавить KeyListener ко всему проекту?

+4

Обычно вы используете привязки клавиш, но независимо от того, является ли слушатель или привязка, он все еще привязан к компоненту. Кстати, и жаль, что вы тупые, но ваш дизайн подкачки JFrames воняет. Не можете ли вы обменять JPanels через CardLayout? Ваши пользователи оценят это. –

+1

Ах, никогда не думал об этом. Я просто просто сделал худшую ошибку. Спасибо, хотя, и я думаю, я мог бы просто использовать макет карты и добавить привязку клавиш в начале программы. – Notchos

+0

* «Я разрабатываю приложение, которое требует нескольких JFrames». * Нет, это не так. Есть десяток различных способов включения множества элементов GUI на один экран, просмотр их. –

ответ

3

Я согласен с тем, что key bindings должен использоваться, но поскольку я не могу удалить принятый ответ, я должен оставить это здесь.

+1

@ Justin: «Для каждой проблемы есть решение, которое просто элегантно и неправильно», и это пример. Это не сработает, поскольку он будет сбой, как только вы добавите какой-либо компонент в GUI, который запрашивает фокус. –

+0

правильно, но затем он может использовать приведенный выше код, чтобы добавить ключ-ключ к любому компоненту, который он пожелает. –

+0

-1, плохое решение для использования KeyListener. Ужасное решение для добавления ключевого слушателя к каждому компоненту. – camickr

Смежные вопросы