【发布时间】:2014-05-04 17:25:57
【问题描述】:
我想为 £, €, µ, ½, Ö, Ä 等特殊字符生成键事件。我可以使用以下代码为键盘上的键生成键事件,例如 'A、B、c、%、*、^' 等:
public static void generateKeyEvent(final int c) {
new Thread() {
public void run() {
try {
Robot robot = new Robot();
robot.keyPress(c);
try {
Thread.sleep(10);
} catch (InterruptedException e) {
}
robot.keyRelease(c);
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
如果是普通字符,它可以正常工作,但如果是我上面提到的字符,代码会抛出以下异常:
java.lang.IllegalArgumentException: Invalid key code
at sun.awt.windows.WRobotPeer.keyPress(Native Method)
at java.awt.Robot.keyPress(Unknown Source)
at com.companyname.utils.Abc$1.run(Abc.java:286)
我在寻找此问题的解决方案时注意到的一件事,因为这些特殊字符未映射到我的键盘上,这就是它抛出此异常的原因。
任何想法,我该怎么做?
【问题讨论】:
-
应该如何按下不存在的键?