Я использую итальянский язык для своей программы, поэтому Float.parseFloat("8,00")
должен работать хорошо. Но я столкнулся с очень плохим NFE в следующей строке:
this.cuSurfaceJTextField1.setValue(
String.format("%05.2f",info.getCuSurface()));
Я отмечаю, что приведенный выше код работал хорошо до некоторых изменений, которые я внес в слушатели, которые не выглядят связанными с этой строкой кода. (Теперь у меня есть свойствоChangeListener, которое обновляет модель при изменении значения.
this.cuSurfaceJTextField1.addPropertyChangeListener("value",
new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
info.setCuSurface(Float.parseFloat(
(String)cuSurfaceJTextField1.getValue()));
updateCuSurface();
}
});
Полезная часть исключения:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "08,00"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1241)
at java.lang.Float.parseFloat(Float.java:452)
at View.bars.QuadrateJPanel$11.propertyChange(QuadrateJPanel.java:348)
at java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:335)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:328)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:263)
at java.awt.Component.firePropertyChange(Component.java:8382)
at javax.swing.JFormattedTextField.setValue(JFormattedTextField.java:799)
at javax.swing.JFormattedTextField.setValue(JFormattedTextField.java:502)