Ограничение ввода 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('')
чтобы сделать эту работу? Или я совершенно не в том направлении?
Благодарю.