Java JTextfields

Просто быстрый вопрос: как мне убедиться, что мой JtextField принимает только числовые значения? Я хочу, чтобы он отображал сообщение об ошибке, если пользователь ввел что-то еще, спасибо


person Maxi90    schedule 14.12.2010    source источник
comment
Попробуйте это: stackoverflow.com/questions/1313390/   -  person Igor    schedule 14.12.2010
comment
См. также есть ли способ принимать только числовые значения в jtextfield"> stackoverflow.com/questions/1313390/ - нет необходимости в неприятных сообщениях об ошибках.   -  person Tom Hawtin - tackline    schedule 14.12.2010


Ответы (4)


Вы можете использовать JFormattedTextField. Создайте его, используя NumberFormatter, и будут принимать только числа.

JFormattedTextField имеет множество настраиваемых параметров, которые позволяют вам решить, как обрабатывать неверный ввод. Рекомендую посмотреть документацию.

person jjnguy    schedule 14.12.2010

Вы можете либо добавить прослушиватель ключевых событий и проверять каждый введенный символ, либо вы можете установить форматировщики документов (NumberFormatter), которые не позволят вам вводить ничего, кроме числа.

person Merky    schedule 14.12.2010

Свяжите прослушиватель ключей с текстовым полем и проверьте только что вставленное значение. Если вставленное значение не является целым числом, выдается сообщение об ошибке.

person Logan    schedule 14.12.2010
comment
Мне нравится эта идея, но как мне проверить введенное значение? может у вас есть пример кода? Благодарность - person Maxi90; 14.12.2010

Я использую этот трюк.

private void myTextFieldKeyReleased(java.awt.event.KeyEvent evt) {
try{
int i = Integer.parseInt(myTextField.getText());
}
catch(Exception ex){
//Show error message here with 
JOptionPane.showMessageDialog(null, "Invalid Input...!");
myTexTField.setText("");
}
}
person Pranjal Choladhara    schedule 28.09.2013
comment
keyListeners слишком низкоуровневы для такой задачи, они недостаточно безопасны: он пропустит вставленный текст. - person kleopatra; 28.09.2013