JTextField-Eingabe auf Ganzzahlen beschränken [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Gibt es eine Möglichkeit, in einem JTextField nur numerische Werte zu akzeptieren? 19 Antworten

Ich weiß, dass diese Frage eine Million Mal gestellt und beantwortet worden sein muss, aber ich kann einfach keine einfache Lösung finden. Ich habe ein JTextField, das nur positive ganze Zahlen als Eingabe akzeptieren soll. Ich brauche eine Möglichkeit, um sicherzustellen, dass hier nichts anderes eingegeben wird.

Ich habe bereits einen keyListener an dieses Steuerelement angehängt. Nach dem Entfernen des anderen Codes, den dieser Listener verarbeiten soll, habe ich Folgendes:

       txtAnswer.addKeyListener(new KeyAdapter() {
        @Override
        public void keyPressed(KeyEvent e) {

            int key = e.getKeyCode();

            /* Restrict input to only integers */
            if (key < 96 && key > 105) e.setKeyChar('');
        };
    });

Wie Sie sehen, versuche ich mit dem KeyCode zu überprüfen, ob die gerade gedrückte Taste in den Bereich von ganzen Zahlen fällt. Das scheint zu funktionieren. Was ich aber tun möchte, ist, den Eintrag einfach zu ignorieren, wenn er außerhalb dieses Bereichs liegt. Der Codee.setKeyChar('') sollte damit umgehen, aber es funktioniert nicht. Der Code wird kompiliert, hat jedoch keine sichtbaren Auswirkungen.

Kann mir jemand sagen, ob ich auf dem richtigen Weg bin? Was kann ich ersetzene.setKeyChar('') mit um das klappen zu lassen? Oder gehe ich total in die falsche Richtung?

Vielen Dank.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage