Я знаю, что этот вопрос, должно быть, спросил и ответил миллион раз, но я просто не могу найти легкое решение. У меня есть 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('')
, чтобы сделать эту работу? Или я полностью иду в неправильном направлении?
Спасибо.