JAVA中存在争议的Robot KeyEvent.VK_

JAVA中存在争议的Robot KeyEvent.VK_,java,swing,awt,awtrobot,Java,Swing,Awt,Awtrobot,我用JAVA创建了Robot类,但有一个问题Robot.keyPress(KeyEvent.VK_AT)必须在->'@'->处按 但它会按“q”“q” 我应该怎么做才能按“@”符号 您是否尝试过使用constant KeyEvent.VK_AMPERSAND?在我的键盘上,@键需要结合Shift键和2个键;可能会有所不同。下面的测试图像是通过添加以下内容生成的 附录:如@neat159评论中所述,主机操作系统键盘控制面板设置必须与测试的预期键盘布局相匹配 r.keyPress(KeyEvent.

我用JAVA创建了Robot类,但有一个问题
Robot.keyPress(KeyEvent.VK_AT)
必须在
->'@'->处按

但它会按“q”“q”


我应该怎么做才能按“@”符号

您是否尝试过使用constant KeyEvent.VK_AMPERSAND?

在我的键盘上,@键需要结合Shift键和2个键;可能会有所不同。下面的测试图像是通过添加以下内容生成的

附录:如@neat159评论中所述,主机操作系统键盘控制面板设置必须与测试的预期键盘布局相匹配

r.keyPress(KeyEvent.VK_SHIFT);
r.keyPress(KeyEvent.VK_2);
r.keyRelease(KeyEvent.VK_2);
r.keyRelease(KeyEvent.VK_SHIFT);

使用VK_在按下'q'时的“@”键VK_的常数是多少?我想还需要另一个常数。你可以提供更多关于你在用机器人做什么的细节吗?如果你按下
@
,那么它一定是
VK_在
我在用ubuntu,这可能是问题所在?我在用ubuntu 13v,我怎么能用ubuntu?我的组合是[Alt Gr]+[Q] ='@'但是我在线程“AWT-EventQueue-0”java.lang.IllegalArgumentException中得到了errorException:java.AWT.Component.ProcessMouseeEvent中java.AWT.Robot.keyPress(本机方法)的sun.AWT.windows.WRobotPeer.keyPress(未知源代码)处的无效键代码为RobotTest$1.mousererelease(RobotTest.java:37)java.awt.Container.processEvent(未知源)的java.awt.Component.processEvent(未知源)我在Ubuntu12,IcedTea6上工作。你可能需要在主机操作系统的键盘控制面板中更改一些内容;我的设置为U.s。Mac OS X和Ubuntu6都是如此。有趣的是,我的设置接受了
VK_ALT
修饰符,但默默地忽略了
VK_ALT_图形
。是的,我的键盘语言是土耳其语,所以问题是语言IC把它挂到英语问题解决了谢谢。