- Megjelent: 2014. szeptember 17
A Java-ban már rég óta hiba az ALT + NUM PAD módban való adatbevitel, ugyanis a KEY_TYPED typusú billentyűeseményekben random számok jelennek meg. Ez gyakorlatilag lehetetlenné tette a vonalkódolvasók használatát, ugyanis a legtöbb ALT módot használ.
Megoldás
KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(
new AltBugFixKeyEventDispatcher());
public class AltBugFixKeyEventDispatcher implements KeyEventDispatcher {
private int i = -1;
@Override
public boolean dispatchKeyEvent(KeyEvent ke) {
if (ke.isAltDown()) {
switch (ke.getID()) {
case KeyEvent.KEY_PRESSED:
if(ke.getKeyCode() == KeyEvent.VK_ALT){
i = 0;
}else if(Character.isDigit(ke.getKeyChar())){
i++;
}else{
i = -1;
}
break;
case KeyEvent.KEY_RELEASED:
break;
case KeyEvent.KEY_TYPED:
break;
}
if(i != -1){
return true;
}
}
return false;
}
}