2015-04-12 323 views
0

我想模擬鍵盤中風。當我按下-鍵時,我收到以下事件。Java:keyCode,rawCode,primaryLevelUnicode,scancode,它們是什麼?

各種代碼是什麼意思?

[KEY_PRESSED, 鍵代碼= 45, keyText =減,keyChar = ' - ', keyLocation按鍵= KEY_LOCATION_STANDARD,rawCode = 189, primaryLevelUnicode = 45,掃描碼= 12]

+2

你能告訴返回此輸出已運行的代碼? – Bobulous

+0

我真的很好奇,爲什麼這封閉,特別是「太寬」。我無法弄清楚如何有「太多可能的答案」的可能性。打印的代碼都具有特定的含義。 –

+0

而且代碼對於理解鍵盤事件在任何編程語言中的處理方式也很有用。 –

回答

3
  • KEY_PRESSED是事件類型。
  • keyCode是作爲密鑰的整數的代碼。請注意,並非所有字符都有與其關聯的鍵碼。例如,問號沒有鍵碼,因爲沒有鍵盤出現在主層上。你可以得到每個代碼的列表here
  • keyText是字符的文本描述。
  • keyChar是鍵入的字符。
  • keyLocation是發起此關鍵事件的密鑰的位置。某些鍵在鍵盤上多次出現,例如左右移位鍵。另外,數字小鍵盤上會出現一些鍵。這提供了一種區分這些鍵的方法。
  • 您可以獲取原始密鑰代碼here的列表。請注意,存在用於人類輸入的字符的原始代碼以及用於處理的密鑰的虛擬鍵代碼。
  • primaryLevelUnicode我相信這是用來映射角色的圖表。 Unicode有多個級別的圖表,主要用於比較(collat​​or)。
  • 每次按下某個鍵時,scancode都會發送到計算機以識別該鍵。有關更多詳細信息,請參閱this answer。您可以獲得掃描碼here的列表。

注意,scancode似乎是微軟Windows只根據註釋中KeyEvent

private transient long scancode = 0; // for MS Windows only 
+0

你的意思是說'rawCode'涉及到鍵盤層? 'keyCode'的值似乎是指「連字符 - 減號」符號的Unicode代碼點值。 – Bobulous

+0

@Arkanon是的,這就是我的意思,這是不正確的? –

+0

你說'keyCode'涉及到鍵盤層,但我想你的意思是說'rawCode'涉及到鍵盤層。 'keyCode'的值與Unicode代碼點有關,對於問號,這個值應該是63. – Bobulous

相關問題