import javax.swing.*; import javax.swing.text.*; import java.awt.Toolkit; import java.text.*; public class DecimalField extends JTextField { private NumberFormat format; public DecimalField(double value, int columns, NumberFormat f) { super(columns); setDocument(new FormattedDocument(f)); format = f; setValue(value); } public double getValue() { double retVal = 0.0; try { retVal = format.parse(getText()).doubleValue(); } catch (ParseException e) { // This should never happen because insertString allows // only properly formatted data to get in the field. Toolkit.getDefaultToolkit().beep(); System.err.println("getValue: could not parse: " + getText()); } return retVal; } public void setValue(double value) { setText(format.format(value)); } }