Input/Output KeyEvent nur verarbeiten wenn es ein "sichtbares" Zeichen ist?

DStrohma

Bekanntes Mitglied
Ich habe einen KeyEvent und will ihn nur weiter verarbeiten wenn es sich dabei um ein "sichtbares" Zeichen handelt. Mit sichtbar meine ich eines dieser Zeichen:
Code:
1234567890^°!"§$%&/()=?`´ß\}][{+*#'-_.:,;
Was ich nicht verarbeiten will, ist BACKSPACE, SPACE, ENTER, F1 ... F12, STRG, ALT, TAB, und eben alle anderen Funktionstasten. Ist das irgendwie möglich?

Was ich bisher gefunde habe ist:
Code:
.isActionKey()
Damit kann ich action keys filtern aber das sind nur sehr wenige Tasten wie z.B. PAGE_UP, PAGE_DOWN und noch ein paar andere. Irgendeine Idee wie ich das machen kann ohne alle nicht gewollten Keys einzeln herauszufiltern?
 
Zuletzt bearbeitet:
Habe eine Lösung gefunden:
Code:
        KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher() {
            @Override
            public boolean dispatchKeyEvent(KeyEvent e) {
                String validString = "^°1!2\"§3$4%5&6/7{(8[)9]=0}?ß\\`´q@we€rtzuiopü*+~asdfghjklöä'#<>yxcvbnmµ;,:._-";
                if (e.getID() == KeyEvent.KEY_TYPED && validString.indexOf(String.valueOf(e.getKeyChar()).toLowerCase()) != -1) {
                    // Process key
                }
                return false;
            }
        });
 

Zurück
Oben