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;
    }
}

 

Kategória: Java

Látogatók

88277
Ma51
Tegnap96
Ezen a héten388
Ebben a hónapban1307
Összesen88277
Statistik created: 2017-11-17T18:59:48+00:00
Bejelentkezett felhasználók 0
Regisztrált felhasználók 1
Ma regisztráltak 0