关键事件

时间:2009-06-18 09:13:33

标签: java user-interface awt

我在Robot Objects上使用键盘事件....

但每次我必须单独指定密钥....比如

机器人r =新机器人(); r.KeyPress(KeyEvent.VK_A); r.KeyPress(KeyEvent.VK_B); r.KeyPress(KeyEvent.VK_C); r.KeyPress(KeyEvent.VK_D);

是否有任何技术来获取/识别每个键的eachand ....不是单独指定它们? 我在 keyCode 变量中收到服务器端的密钥代码.... 所以我可以直接使用这个变量取代“KeyEvent.VK_D”,如 r.keyPress(keyCode); 请告诉我....

3 个答案:

答案 0 :(得分:1)

密钥标识符只是一个Int值。当服务器值与java值匹配时,直接将值放入。如果不是,则必须创建一个映射,其中服务器值引用java键值。

在C ++ Qt键事件和Java Key事件之间的转换过程中,我遇到了同样的问题。该值也不匹配。我不得不为此创建一个映射。

看一下KeyEvent类。每个Key都列出了一个int值。您必须检查从服务器获得的值是否与此int值匹配。当服务器值不匹配时,您必须创建一个Map。 map键是服务器值,map值是按下的键的相应KeyEvent valuke。

当值匹配时,您不必创建地图。您可以直接使用Robot命令的服务器值。

答案 1 :(得分:0)

嗯......是吗? KeyEvent.VK_D中的常量仅供您方便使用。使用来自其他地方的数值绝对没有错,只要相同的值用于相同的键。

答案 2 :(得分:0)

如果我正确理解了您的问题,那么只要按下任何键,您就会尝试执行此操作。虽然我怀疑我正在正确地阅读你的问题,但解决方案是使用KeyEvent.KEY_PRESSED,如果你想要一个动作或者在一个键被释放时设置一个变量,它将是KeyEvent.KEY_RELEASED。虽然,我有点困惑。您是否真的希望在按下每个键时发生相同的操作,或者您想要一组键的唯一事件?

相关问题