我想生成特殊字符的鍵盤事件,例如£, €, µ, ½, Ö, Ä
等。我能夠生成鍵盤上的按鍵事件,比如'A,B,c,%,*,^'等用下面的代碼:爲特殊字符生成AWT鍵事件
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)
一件事我尋找這個問題的解決方案,就像這些s一樣特殊字符沒有映射到我的鍵盤上,這就是爲什麼它拋出這個異常。
任何想法,我該怎麼做?
以及如何按下不存在的密鑰? –