2010-07-12 116 views
0

對於Jtree中的多選,我在其中使用多選模式。它工作。但我想知道當我在這棵樹中進行多重選擇時,我寫了一個非常簡單的keycontroller類實現KeyListener的,但我想檢查CTRL是否被按下不這樣做,我使用這個代碼,但它似乎不工作:ctrl的鍵碼

kc.getKeyCode() == KeyEvent.CTRL_DOWN_MASK ; 

什麼是CTRL鍵代碼?或者我做錯了什麼?

回答

0

作爲CTRL是一個關鍵的掩碼,沒有字符僅用於CTRL鍵。

但是,根據KeyEvent文檔,總是有一個vaild密鑰代碼在按下或釋放鍵時發送。在這種情況下,它應該是KeyEvent.CHAR_UNDEFINEDgetModifiersEx()應該對CTRL鍵返回true。注意,爲了它的工作,你必須註冊一個KeyListener(特別爲keyPressed()和keyReleased())處理。

+0

有沒有一種方法可以理解我正在做一個特殊的選擇多重選擇。我的意思是我不想失去之前選擇的項目,當我做出多項選擇時。 – gustavo 2010-07-12 12:58:55

1

關鍵代碼爲CtrlKeyCode.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

希望這會有所幫助。