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

256134
Ma42
Tegnap98
Ezen a héten140
Ebben a hónapban873
Összesen256134
Statistik created: 2024-12-10T06:52:09+01:00
Bejelentkezett felhasználók 0
Regisztrált felhasználók 1
Ma regisztráltak 0