Restricción de la entrada JTextField a enteros [duplicado]

Esta pregunta ya tiene una respuesta aquí:

¿Hay alguna forma de aceptar solo valores numéricos en un JTextField? 19 respuestas

Sé que esta pregunta debe haber sido formulada y contestada un millón de veces, pero simplemente no puedo encontrar una solución fácil. Tengo un JTextField que está destinado a aceptar solo enteros positivos como entrada. Necesito una manera de asegurarme de que nada más sea aportado aquí.

Ya tengo un keyListener adjunto a este control. Eliminando el otro código que este oyente está ahí para manejar, tengo esto:

       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('');
        };
    });

Como puede ver, estoy tratando de usar el código de clave para verificar si la tecla que acaba de presionar se encuentra dentro del rango de los enteros. Esto parece funcionar. Pero lo que quiero hacer es simplemente ignorar la entrada si se encuentra fuera de este rango. El códigoe.setKeyChar('') estaba destinado a manejar esto, pero no funciona. El código se compilará, pero no tiene ningún efecto visible.

¿Alguien puede decirme si estoy en el camino correcto? ¿Qué puedo reemplazar?e.setKeyChar('') con para hacer este trabajo? ¿O voy totalmente en la dirección equivocada?

Gracias.

Respuestas a la pregunta(6)

Su respuesta a la pregunta