我正在使用具有JTextPane的java應用程序。我想要在輸入鍵被按下時(或者當用戶轉到下一行時)能夠執行一些代碼。我在網上看過,沒有找到解決方案。用C#解決這個問題會更好嗎?如果沒有,我怎麼才能在JTextPane的keyTyped()事件中註冊Enter鍵?如果C#是一個很好的選擇,我將如何在C#中做到這一點?Java:註冊<ENTER>在JTextPane上按下按鍵
這裏是一個解決方案,我認爲會工作......但沒有
//Event triggered when a key is typed
private void keyTyped(java.awt.event.KeyEvent evt) {
int key = evt.getKeyCode();
if (key == KeyEvent.VK_ENTER) {
Toolkit.getDefaultToolkit().beep();
System.out.println("ENTER pressed");
}
}
爲什麼上面的例子不工作是因爲無論哪個鍵我按,我得到的0鍵碼我會在Java中更喜歡這個問題的解決方案,但是C#也可以更好地工作。另外,請嘗試用例子而不是鏈接來回答問題(除非你確實需要)。謝謝!
不使用keyListeners,請使用keyBindings作爲@Hovercraft建議 – kleopatra
從JavaDocs for getKeyCode():'對於KEY_TYPED事件,keyCode是VK_UNDEFINED.'它至少從1.3開始被記錄。 –