Я пытаюсь изучить ключевые слова, переписывая проблемы из своей книги, которые я ранее решил с помощью KeyListener. Проблема, которую я пытаюсь решить с помощью keybinds, требует, чтобы я записывал введенное сообщение и отображал его на панели.Java Swing: KeyBinding для события KEY_TYPED
Способ, которым он был разрешен с помощью KeyListener, - это просто запись символов с помощью юникодов с использованием метода keyTyped() и клавиш модификатора/не-Unicode чтения с keyPressed. Если KeyEvent.VK_ENTER соответствует коду ключа из keyevent, он отображает строку на панели.
~~~~~~~~
Я подумал, что она может быть решена таким же образом, с KeyBinds. В документах KeyEvent говорится, что KeyEvent.KEY_TYPED запускается каждый раз, когда вводится символ. Я предположил, что это означает, что каждый символ с соответствующим Unicode вводится так, как он работает в KeyListener.
Позже я понял, что понятия не имею, как получить символ, поскольку учебник Oracle по KeyBinds говорит, что KeyEvent потребляется при вызове actionPerformed().
Это код, который я думал, что позволит мне записать типизированных ключи к StringBuilder с помощью комбинации клавиш:
getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.KEY_TYPED, 0), "recordTypedKey");
getActionMap().put("recordTypedKey", addCharToString);
Есть ли способ, чтобы получить символы, которые будет ссылаться keyTyped KeyListener в() метод, кроме добавления ключ к каждому из них и использование отдельного события Action для их записи?
Привязки клавиш используются для отображения конкретный KeyStroke к Action. Я бы не использовал привязки клавиш для прослушивания всех возможных KeyStrokes. 'Проблема, которую я пытаюсь решить с помощью keybinds, требует, чтобы я записывал сообщение, которое было напечатано' - возможно, вы должны использовать 'DocumentListener'. Этот слушатель может быть добавлен в «Документ» любого текстового компонента. – camickr