Restringindo a entrada JTextField a números inteiros [duplicados]

Esta questão já tem uma resposta aqui:

Existe alguma maneira de aceitar apenas valores numéricos em um JTextField? 19 respostas

Eu sei que essa pergunta deve ter sido feita e respondida um milhão de vezes, mas não consigo encontrar uma solução fácil. Eu tenho um JTextField que se destina a aceitar apenas inteiros positivos como entrada. Eu preciso de uma maneira de garantir que nada mais seja inserido aqui.

Eu já tenho um keyListener anexado a este controle. Removendo o outro código que este ouvinte está lá para lidar, eu tenho isso:

       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 você pode ver, estou tentando usar o KeyCode para verificar se a tecla que acabou de ser pressionada está dentro do intervalo de inteiros. Isso parece funcionar. Mas o que eu quero fazer é simplesmente desconsiderar a entrada se ela ficar fora desse intervalo. O códigoe.setKeyChar('') foi feito para lidar com isso, mas não funciona. O código irá compilar, mas não tem efeito visível.

Alguém pode me dizer se estou no caminho certo? O que posso substituir?e.setKeyChar('') com para fazer isso funcionar? Ou eu estou indo totalmente na direção errada?

Obrigado.

questionAnswers(6)

yourAnswerToTheQuestion