2016-07-26 5 views
1

Как бы я мог изменить поля сгенерированного KeyEvent?Создание 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

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') 

Difference

rawCode 
primaryLevelUnicode 
scancode 
extendedKeyCode 

Есть ли способ я могу установить эти поля на объекте KeyEvent?

Docs 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).

Смежные вопросы