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

Támogasd munkánkat!

Blogunkat nonprofit módon, teljesen ingyen készítjük, már 7 éve. Ingyenes szoftvereket biztosítunk több száz cég számára, és természetvédelmi tevékenységet is végzünk. Ezekből semmilyen bevételünk nem származik. De mi is csak pénzből tudjuk magunkat fenntartani. Azért gyűjtünk, hogy tovább tudjuk folytatni hasznos értékteremtő munkánkat, ezért kérünk, ha van 1000 - 5000 Ft-od, amit fel tudsz ajánlani számunkra, támogass minket!

Cégünk: Völgyerdő Nonprofit Kft.

Számlaszámunk: 11749015-28535807 (OTP Bank)

 

Látogatók

137389
Ma34
Tegnap33
Ezen a héten344
Ebben a hónapban711
Összesen137389
Statistik created: 2019-12-15T15:03:25+00:00
Bejelentkezett felhasználók 0
Regisztrált felhasználók 1
Ma regisztráltak 0