對於Jtree中的多選,我在其中使用多選模式。它工作。但我想知道當我在這棵樹中進行多重選擇時,我寫了一個非常簡單的keycontroller類實現KeyListener的,但我想檢查CTRL是否被按下不這樣做,我使用這個代碼,但它似乎不工作:ctrl的鍵碼
kc.getKeyCode() == KeyEvent.CTRL_DOWN_MASK ;
什麼是CTRL鍵代碼?或者我做錯了什麼?
對於Jtree中的多選,我在其中使用多選模式。它工作。但我想知道當我在這棵樹中進行多重選擇時,我寫了一個非常簡單的keycontroller類實現KeyListener的,但我想檢查CTRL是否被按下不這樣做,我使用這個代碼,但它似乎不工作:ctrl的鍵碼
kc.getKeyCode() == KeyEvent.CTRL_DOWN_MASK ;
什麼是CTRL鍵代碼?或者我做錯了什麼?
作爲CTRL是一個關鍵的掩碼,沒有字符僅用於CTRL鍵。
但是,根據KeyEvent文檔,總是有一個vaild密鑰代碼在按下或釋放鍵時發送。在這種情況下,它應該是KeyEvent.CHAR_UNDEFINED
和getModifiersEx()
應該對CTRL鍵返回true。注意,爲了它的工作,你必須註冊一個KeyListener(特別爲keyPressed()和keyReleased())處理。
關鍵代碼爲Ctrl是KeyCode.VK_CONTROL
。爲了找到如果Ctrl鍵舉行,你可以這樣做:
if ((event.getModifiers() & ActionEvent.CTRL_MASK) ==ActionEvent.CTRL_MASK) {
System.out.println("CTRL KEY PRESSED");
}
它是使用java.awt.event.ActionEvent
代替java.awt.event.KeyEvent
的。所以CtrlActionEvent
的代碼是CTRL_MASK
。
希望這會有所幫助。
有沒有一種方法可以理解我正在做一個特殊的選擇多重選擇。我的意思是我不想失去之前選擇的項目,當我做出多項選擇時。 – gustavo 2010-07-12 12:58:55