Просто быстрый вопрос: как мне убедиться, что мой JtextField принимает только числовые значения? Я хочу, чтобы он отображал сообщение об ошибке, если пользователь ввел что-то еще, спасибо
Java JTextfields
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
Мне нравится эта идея, но как мне проверить введенное значение? может у вас есть пример кода? Благодарность
- 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
keyListeners слишком низкоуровневы для такой задачи, они недостаточно безопасны: он пропустит вставленный текст.
- person kleopatra; 28.09.2013