Fragen zu JFormattedTextField

Hallo,

habe eine GUI mit zwei JFormattedTextFields. Eines für Prozentwert (z.B. 5,00) und das andere für einen Eurowert (z.B. 1.000,50). Die Werte sollen dann in einer Datenbank gespeichert werden.

Welchen Datentyp sollte denn für einen Eurowert verwendet werden? Ich lese unterschiedliche Lösungen (einmal DOUBLE, einmal DECIMAL(19,2).

Wie bekomme ich die von der GUI ausgelesenen Werte (siehe oben) in die entsprechenden Java-Datentypen (z.B. BigDecimal?) konvertiert? Also 5,00 --> 5.00 und 1.000,00 --> 1000,00? Wahrscheinlich geht das einfacher wie ich denke.

Hat jemand ein Beispiel-Code für mich?

Danke
Tom

Spiel mal damit rum: ```public static void main(String[] args) {
final DecimalFormat currencyFormat = new DecimalFormat("#,##0.00 \u00A4");
currencyFormat.setParseBigDecimal(true);

final DecimalFormat percentFormat = new DecimalFormat(“0.00 %”);
percentFormat.setParseBigDecimal(true);

final JFormattedTextField ftf1 = new JFormattedTextField(currencyFormat);
ftf1.setValue(new Long(0));
final JFormattedTextField ftf2 = new JFormattedTextField(percentFormat);
ftf2.setValue(new Long(0));

ftf1.addPropertyChangeListener(“value”, new PropertyChangeListener() {

public void propertyChange(PropertyChangeEvent evt) {
  // taken from the event
  System.out.println("Currency Value: " + evt.getNewValue());

  // taken from the getter
  System.out.println("Currency Value: " + ftf1.getValue());
}

});

final JPanel contentPane = new JPanel(new GridLayout(0, 1, 3, 3));
contentPane.add(ftf1);
contentPane.add(ftf2);

final JFrame f = new JFrame(“Test Frame: Formatted Text Fields”);
f.setContentPane(contentPane);
f.pack();
f.setSize(100, f.getHeight());
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
f.setVisible(true);
}```
Ebenius