2016-08-12 6 views
-3

У меня есть аннотация Метод выпущенKey интерфейса NativeKeyListener.Как справиться с проблемой чувствительности к регистру с библиотекой JNativeHook

Он только захватывает ключ в случае ИНСЕНСИВНОГО МАНИЗАЦИИ (только верхний случай), но мне нужно, чтобы он был чувствительным к регистру. Кроме того, у метода keyTyped есть проблемы.

Любое решение или лучшая альтернатива JNativeHook для Java?

вот мой код:

public void nativeKeyReleased(NativeKeyEvent e) { 
    if(e.getKeyCode()==NativeKeyEvent.VC_ENTER) 
    { 
     line+="<Pressed ENTER>"; 
     System.out.println(line); line=""; 
    } 
    else 
    { 
     line+=NativeKeyEvent.getKeyText(e.getKeyCode()); 
     display(e); 
    } 
} 
+0

Не могли бы вы высказать свой код? –

ответ

0

Хотя нет никаких технических ограничений, ключевой напечатали событие всегда производится на ключе вниз, так что вы получите ключевые события, набранные во время автоматического повтора. Я не уверен, почему вы хотели бы получить символ при выпуске, но если вам это действительно нужно, вам понадобится буфер char на клавиатуре и сбросить буфер при выпуске. Простой стек должен сделать трюк. Помните, что все события нажатия клавиш не генерируют события с типизированным типом. Итак, нажмите на стек для нажатия клавиши, поп добавьте символ и нажмите еще раз, напечатав его, а затем, наконец, включите ключ. Это должно работать до тех пор, пока ваш диспетчер событий не будет однопоточным.