Какой простой способ создать текстовое поле (или тому подобное), которое позволяет пользователю вводить INT/удвоение в Java?
-
22-09-2019 - |
Вопрос
Я ищу способ, чтобы убедиться, что мое текстовое поле (JTextField, JFormattedTextField) возвращает двойную или int, а не строку, когда я называю .getText (). Как лучше всего это сделать (если возможно)?
Спасибо!
Badpanda: d
Решение
Зарегистрируйте вход и позвонить метод
getValue
изJFormattedTextField
public class FormattedTextFieldVerifier extends InputVerifier { public boolean verify(JComponent input) { if (input instanceof JFormattedTextField) { JFormattedTextField ftf = (JFormattedTextField)input; AbstractFormatter formatter = ftf.getFormatter(); if (formatter != null) { String text = ftf.getText(); try { formatter.stringToValue(text); return true; } catch (ParseException pe) { return false; } } } return true; } public boolean shouldYieldFocus(JComponent input) { return verify(input); }
}
Другие советы
Я бы проверил ввод в обратном вызове Textbox и просто сделал поле красным или создал бы сообщение о предупреждении поблизости. Вы можете удалить ненужный символ из строки Textbox.
Использовать JFormattedTextfield.
Не связан с StackOverflow