我怎样才能让我的习惯 KeyListener
听一听这些词的组合 ALT
(或 CTRL
就这一点而言,你还有其他的钥匙吗?
假设我有11个不同的操作,我希望应用程序执行,这取决于按下的键的组合。 ALT + 0
- ALT + 9
显然不会带来任何问题 ALT + 1 + 0
(或者“alt+10”可以在帮助文件或类似文件中描述)我在网络上(或在我的头脑中)找不到一个好的解决方案。我不相信这个带定时器的解决方案是唯一可行的方法。
提前感谢您的建议!
编辑:操作0-9+操作10=11个操作。谢谢@x-zero。
6条答案
按热度按时间w8rqjzmb1#
我想我用的是一种更简单的方法。如果keyevent是ev,那么如果您调查:
你会发现ctrl-a是1,ctrl-b是2,依此类推。我想用ctrl-s保存。所以我就用:
去发现它。不知道为什么,但效果很好
没有。
3okqufwl2#
我建议不要使用组合键,而是在窗口打开时考虑一些输入字段
isVisible()
而且很专注。该字段可以是隐藏的,就像windows的fileexplorer隐藏文件名搜索(输入一个目录,键入文件名,然后将对应的文件集中起来),也可以是可见的,就像在ubuntu中一样。组合键不是为包含除修饰语以外的多个键而设计的,尽管您可以实现这一点。
fwzugrvs3#
smdncfj34#
alt+1+0(或“alt+10”,如帮助文件或类似文件所述)
似乎与(你的一条评论)有冲突:
因此,例如,如果用户想要更改第11列中的数据(称为“10”),他/她会按alt+1+[放弃alt和1]0。
假设alt+10表示“按下alt,按下并释放1,按下并释放0,释放alt”,我建议尝试以下操作:
在keypressed中,监听alt键,激活一个布尔标志isaltpressed,并创建一个缓冲区来保存发生的按键(比如说字符串)。在keytyped中,如果isaltpressed处于活动状态,则将键代码附加到缓冲区。在keyreased中,再次监听alt,打开一个查询缓冲区并执行操作的条件。
vwhgwdsa5#
你可以用
KeyListener
为了这个目的,把某些东西结合起来。请看下面的示例,它应该放在keyPressed(KeyEvent e)
方法。绳子
Select All
按ctrl+a时将显示。方法e.isControlDown()
检查是否按下ctrl键。类似地,alt组合键也可以通过使用e.isAltDown()
方法。这背后的逻辑是,
e.getKeyChar()
返回按键的字符e.getKeyCode()
返回其ascii码。按住ctrl键时e.getKeyChar()
不会再回来了a
以及e.getKeyCode()
会是一样的65
. 希望你能理解。请随便问更多。abithluo6#
对于这种类型的交互,不应使用keylister。而是使用键绑定,您可以在java教程中阅读。然后可以使用inputevent掩码来表示各种修改键何时被弃用。例如:
请参阅javadoc以获取击键时可以使用的不同代码。这些修饰语可以组合在一起表示各种键的组合。例如
代表
Ctrl + Shift
钥匙被按下了。编辑:正如已经指出的,这并不能回答你的问题,而是应该作为一些好的建议。