2010-07-12 119 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

希望这会有所帮助。