Лучше использовать DocumentFilter, как было описано здесь много раз.
жный дубликат:
Есть ли способ принять только числовые значения в JTextField?
Есть ли в JTextField of Swing какие-либо функциональные возможности, которые допускают только положительные числа в диапазоне чисел?
Пример: я могу вводить только цифры от 10 до 30. Числа вне этого диапазона даже не будут отображаться в поле.