我一直在試圖通過重寫我以前使用KeyListener解決的書中的問題來學習keybind。我正在努力解決使用keybinds的問題,需要我記錄已輸入的消息並將其顯示在面板上。Java Swing:KEY_TYPED事件的KeyBinding
使用KeyListener解決問題的方式就是使用keyTyped()方法通過unicodes記錄字符並使用keyPressed讀取修飾符/非Unicode密鑰。如果KeyEvent.VK_ENTER與keyevent中的鍵碼相匹配,則會在面板上顯示該字符串。
~~~~~~~~
我認爲它可以與KeyBinds類似的方式來解決。它在KeyEvent文檔中說每輸入一個字符時都會觸發KeyEvent.KEY_TYPED。我認爲這意味着每個字符都有相應的Unicode,就像它在KeyListener中的工作方式一樣。
後來,我意識到我不知道如何檢索字符,因爲KeyBinds上的Oracle教程指出,在調用actionPerformed()時會使用KeyEvent。
這是我認爲將使我使用鍵綁定記錄輸入鍵一個StringBuilder代碼:
getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.KEY_TYPED, 0), "recordTypedKey");
getActionMap().put("recordTypedKey", addCharToString);
有沒有一種方法來獲得,將調用的KeyListener的的keyTyped()中的字符方法除了添加他們的每一個關鍵,並使用單獨的行動事件來記錄它們?
鍵綁定用於映射指定一個Action的特定KeyStroke。我不會使用鍵綁定來偵聽所有可能的KeyStrokes。 '我正在努力解決使用keybinds的問題,需要我記錄一個已經鍵入的消息 - 也許你應該使用'DocumentListener'。這個監聽器可以添加到任何文本組件的「文檔」中。 – camickr