2016-07-26 108 views
1

我将如何去改变生成的KeyEvent的字段?从键盘创建具有特定字段的KeyEvent

java.awt.event.KeyEvent[KEY_PRESSED, 
keyCode=65, 
keyText=A, 
keyChar='a', 
keyLocation=KEY_LOCATION_STANDARD, 
rawCode=65, 
primaryLevelUnicode=97, 
scancode=30, 
extendedKeyCode=0x41] on panel0 

实际KeyEvent的生成的KeyEvent

java.awt.event.KeyEvent[KEY_PRESSED, 
keyCode=65, 
keyText=A, 
keyChar='a', 
keyLocation=KEY_LOCATION_STANDARD, 
rawCode=0, 
primaryLevelUnicode=0, 
scancode=0, 
extendedKeyCode=0x0] on panel0 

new KeyEvent(component, KeyEvent.KEY_PRESSED, System.currentTimeMillis(), 0, 65, 'a') 

差异

rawCode 
primaryLevelUnicode 
scancode 
extendedKeyCode 

有没有一种方法我可以设置的KeyEvent对象上这些领域?

文档https://docs.oracle.com/javase/7/docs/api/java/awt/event/KeyEvent.html

回答

0

望着在KeyEvent类的源代码,看来你不能设置这些:

//set from native code. 
private transient long rawCode = 0; 
private transient long primaryLevelUnicode = 0; 
private transient long scancode = 0; // for MS Windows only 
private transient long extendedKeyCode = 0; 

这是私人的,并从本地代码(所以在Java中没有变化)设置。

相关问题