2014-01-15 4 views
2

У меня есть графический интерфейс.За какой компонент следует добавить KeyListener?

Этот класс GUI расширяет JFrame.

В верхней части экрана есть JLabel с некоторым текстом.

В центре экрана находится JPanel, а в этот JPanel добавлены n x n JButtons.

Мне нужно, чтобы KeyListener реагировал, если я нажимаю клавишу.

Для какого компонента (JFrame, JLabel, JPanel, JButtons) следует добавить KeyListener для нормальной работы моей программы?

ответ

1

За какой компонент следует добавить KeyListener?

  • вы можете использовать KeyListener для (обозначается)

    1. доисторический AWT компонентов (Swing на основе AWT)

    2. более 3 Keypressed в то же время или для определения порядка

    3. , а затем для Swing JComponents be ель использовать KeyEventDispatcher или AWTEventListener (оба реагируют на singnals с клавиатуры)

  • иным образом использовать комбинации клавиш (например, Поворотное JComponents использует комбинацию клавиш внутренне)
+0

Но, к которому качели компонента он принадлежит? – Pureferret

+0

@Pureferret теоретически для всех JComponents возможен, но с крайним усилием создать разумный код – mKorbel

+0

Так что бы вы порекомендовали. В его нынешнем виде вы не отвечаете на вопрос. – Pureferret

2

JFrame был бы самым умным выбором, учитывая, что он является предком верхнего уровня, и вы сможете избежать проблем с фокусом. Однако, если вы говорите, что вам нужно реализовать JTextField, тогда необходимо будет добавить keylistener в JTextField, потому что фокус удаляется от параллельных компонентов, чтобы использовать возможность ввода в поле.

+0

тогда было бы необходимо добавить KeyListener к JTextField - для этого цирка там DocumentListener – mKorbel

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