Ограничение ввода JTextField целыми числами [дубликаты]

This question already has an answer here:

Is there any way to accept only numeric values in a JTextField? 19 answers

Я знаю, что на этот вопрос нужно было ответить и ответить миллион раз, но я просто не могу найти легкого решения. У меня есть JTextField, который предназначен для приема только положительных целых чисел в качестве входных данных. Мне нужен способ удостовериться, что больше ничего не получает здесь.

У меня уже есть keyListener, прикрепленный к этому элементу управления. Удаляя другой код, который должен обработать этот слушатель, у меня есть это:

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

Как вы можете видеть, я пытаюсь использовать KeyCode, чтобы проверить, попадает ли только что нажатая клавиша в диапазон целых чисел. Это похоже на работу. Но я хочу просто игнорировать запись, если она выходит за пределы этого диапазона. Кодe.setKeyChar('') должен был справиться с этим, но он не работает. Код скомпилируется, но он не имеет видимого эффекта.

Кто-нибудь может сказать мне, если я на правильном пути? Что я могу заменитьe.setKeyChar('') чтобы сделать эту работу? Или я совершенно не в том направлении?

Благодарю.

Ответы на вопрос(6)

Ваш ответ на вопрос