Hallo Kay,
ich habe folgendes Problem mit der JFormattedTextField-Komponente:
Ich möchte eine Gleitkommazahl mit unterschiedlicher Anzahl Nachkommastellen zulassen. Wenn ich nun aber die Zahl 12.983 darstellen will, wird sie automatisch auf 13 gerundet. Ich finde einfach den Fehler nicht.text = new JFormattedTextField(new Double(0.0));
String s = "12.983";
text.setValue(Double.parseDouble(s));
Der Fehler liegt im verwendeten Format.
Ich habe folgenden Code geschrieben, mit dem die Zahl entsprechend dem lokal eingestellten Format dargestellt wird:
import java.text.NumberFormat;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
public class DoubleTest {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JFormattedTextField tf = new JFormattedTextField(NumberFormat.getNumberInstance());
frame.add(tf);
Double d = Double.parseDouble("12.983");
tf.setValue(d);
frame.setVisible(true);
}
}
Entscheidend ist dabei die Zeile mit dem folgenden Code:
JFormattedTextField tf = new JFormattedTextField(NumberFormat.getNumberInstance());
Über den Parameter der Methode getNumberInstance(Locale inLocale) solltest du dann die entsprechende Einstellung wählen können - wenn dir die lokale Einstellung nicht ausreicht.
Mehr zu den Nummer-Formaten gibt's hier.
Grüße
Marc Reichelt || http://www.marcreichelt.de/
Linux is like a wigwam - no windows, no gates and an Apache inside!
Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)