簡體   English   中英

為什么有些 KeyEvent 鍵碼會拋出“IllegalArgumentException: Invalid key code”?

[英]Why are some KeyEvent keycodes throwing “IllegalArgumentException: Invalid key code”?

我正在嘗試使用Robot自動化一些流程,似乎KeyEvent中的某些鍵碼(只有在正常鍵入時需要按住 shift 的符號)正在拋出IllegalArgumentException 這是在main中運行的所有代碼:

Robot r = new Robot();
r.keyPress(KeyEvent.VK_EXCLAMATION_MARK);

但是,使用以下解決方法可以正常工作:

Robot r = new Robot();
r.keyPress(KeyEvent.VK_SHIFT);
r.keyPress(KeyEvent.VK_1);

任何想法為什么拋出異常? 謝謝!

Java版本:1.6.0_23

因為就像Robot.keyPress的文檔所說的那樣,當keycode不代表有效鍵並且VK_EXCLAMATION_MARK不是有效鍵時會引發IllegalArgumentException

鍵碼用於表示兩件事:鍵盤上的鍵和“輸入字符”事件。 鍵入一個字符通常需要多次按鍵(按順序,或同時,或兩者兼而有之)。 但是Robot.keyPress模擬按鍵的行為(因此得名),而不是輸入字符的行為。

有關更多信息,請參閱 KeyEvent 的文檔: http://download.oracle.com/javase/6/docs/api/java/awt/event/KeyEvent.ZFC35FDC70D5FC69D2693883A822C75A

我不知道Robot ,但這不是因為它需要按下兩個鍵才能插入感嘆號。

鍵盤上沒有感嘆號鍵。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM