2012-07-25 110 views
0

我正在運行一個Java機器人類,我需要輸入鍵盤按鍵0-9(實際的數字),但不是數字鍵盤的數字。出於某種原因,我正在使用的java applet(我沒有寫)不接受數字鍵盤上的0-9鍵,只有標準鍵盤上方的0-9行。但是,Java機器人類似乎只有一個VK_NUMPAD#KeyEvent。起初,我嘗試了VK_1事件,但結果與數字無關(而是第一個0-9的ASCII字符)。任何方式來獲得第一行的數字?我使用的機器人可以很好地工作,並且會很高興地輸入諸如「VK_P」和「VK_UP」之類的按鍵。 謝謝!如何使用Java Robot輸入非數字鍵盤號碼?

+0

你能給我們提供關於你使用的applet的任何信息嗎?或者擁有VK_NUMPAD#事件的機器人類? – Iain 2012-07-25 16:50:37

+0

小程序是http://www.webpacman.com/mspacman.htm。它會接受像VK_UP這樣的KeyEvent來移動pacman而不用投訴,而不是數字。機器人類是http://docs.oracle.com/javase/1.4.2/docs/api/java/awt/Robot.html中的標準Java Robot。另外,VK_NUMPAD [#]只是我對VK_NUMPAD1,VK_NUMPAD2等的記號 – user1552292 2012-07-25 17:44:58

回答

0

This應該是關鍵代碼的權威鏈接。當使用e.getKeyCode()時,我們看到VK_NUMPAD的編碼分別爲數字0-9的96-105。只有在num_lock開啓的情況下才會出現這種情況,因爲如果它關閉,您將獲得其他代碼。

您在VK_1的嘗試應該是正確的。這是代碼49,它對應於已經被推動的頂行上的1。我用我的一個小程序試了一下。我卡在一個KeyListener中,並且驗證了這是正確的。 48-57對應於在我列爲VK_0 ... VK_9的鏈接中列出的最上面一行中的0-9。必須有某種重寫(如num_lock鍵覆蓋數字鍵盤),因爲正如我所說的,VK_1是鍵盤頂部1個字符的正確答案。