Я делаю эту форму, которая запрашивает имя, фамилию, пол, рост и т. Д. Я добавил keyTyped обработчик действий для проверки целостности (имена только буквы, возраст максимум 2 числа и т. Д.)Как обновить значение JTextField, чтобы соответствовать реальному значению?
Дело в том, что шашки работают, но значение, которое я вижу в форме, не соответствует реальному значению, например, я пишу '1.333' (в метрах) для Height, checker выполняет свою работу и сообщает пользователь, который принимает только значения, такие как 1.33.
Так что я использовал
formattedTextField.setText(StringUtils.substring(formattedTextField.getText(), 0, 4));
Если я пишу 1.333 в TextField, реальное значение, хранящееся в 1,33, НО 1,333 остается в TextField
Это то, что я пытался
formattedTextField = new JFormattedTextField();
formattedTextField.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent arg0) {
String re1="^([+-]?\\d*\\.?\\d*)$";
System.out.println(formattedTextField.getText().matches(re1));
if(formattedTextField.getText().length() >= 1 && formattedTextField.getText().matches(re1) == true)
{
if(formattedTextField.getText().length() >= 3)
{
final BalloonTip balloonTip = new BalloonTip(
formattedTextField,
new JLabel("<html>Solo se aceptan valores de altura, como 1.66, 1.76, 1.88, etc..</html>"),
style,
BalloonTip.Orientation.LEFT_ABOVE,
BalloonTip.AttachLocation.ALIGNED,
20, 10,
false
);
TimingUtils.showTimedBalloon(balloonTip, 4500);
formattedTextField.setText(StringUtils.substring(formattedTextField.getText(), 0, 4));
}
}
}
});
contentPane.add(formattedTextField, "cell 2 9,growx,aligny center");
В соответствии с комментариями к вашему предыдущему вопросу [] (http://stackoverflow.com/questions/ 39864104/how-can-add-a-button-to-get-two-values), создайте и опубликуйте действительный [mcve]. Это не ваша целая программа, а очень простая простая программа, которая демонстрирует вашу проблему для нас. –
И вы никогда не хотите использовать KeyListener в текстовом компоненте Swing. Опять же, пожалуйста, улучшите свой вопрос, если вам нужен лучший ответ. –