Swing Betrag mit Komma aus jformattedtextfield auslesen.

Bigbob

Mitglied
Hallo zusammen,

irgendwie komme ich nicht weiter.

Ich möchte aus einem jformattedtextfield einen Betrag mit Nachkommastelle auslesen (z.B. 1234,56)
und diesen in ein Double Feld einlesen um damit zu rechnen.
Leider bekomme ich sobald ich ein Komma eingeben eine Exception.
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "1234,5"

Anbei der Code:

Java:
import java.awt.*;
import java.text.NumberFormat;

import javax.swing.*;
import javax.swing.event.*;
import com.jgoodies.forms.factories.*;
import com.jgoodies.forms.layout.*;
/*
 * Created by JFormDesigner on Fri May 27 10:13:04 CEST 2011
 */



/**
 * @author 
 */
public class test extends JFrame {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	public static void main(String[] args) {
		test frame = null;
	    frame = new test();			
		frame.setDefaultCloseOperation(test.EXIT_ON_CLOSE);
		frame.setVisible(true);		

	}
	public test() {
		initComponents();
	}

	private void EingabeCaretUpdate(CaretEvent e) {
		double tmp_eingabe; String test_eingabe = Eingabe.getText();
		test_eingabe.replace(",", ".");
		if(test_eingabe.equals("")) {
			tmp_eingabe = 0;
		} else {
			tmp_eingabe = Double.parseDouble(Eingabe.getText());
			double tmp_ausgabe = tmp_eingabe * 1.95583;
			Ausgabe.setText((NumberFormat.getCurrencyInstance().format( Double.valueOf(tmp_ausgabe) )));
		}
		System.out.println("Eingabe: "+ tmp_eingabe);
	}

	private void initComponents() {
		// JFormDesigner - Component initialization - DO NOT MODIFY  //GEN-BEGIN:initComponents
		dialogPane = new JPanel();
		contentPanel = new JPanel();
		label1 = new JLabel();
		Eingabe = new JFormattedTextField();
		label2 = new JLabel();
		Ausgabe = new JFormattedTextField();
		buttonBar = new JPanel();
		okButton = new JButton();

		//======== this ========
		Container contentPane = getContentPane();
		contentPane.setLayout(new BorderLayout());

		//======== dialogPane ========
		{
			dialogPane.setBorder(Borders.DIALOG_BORDER);
			dialogPane.setLayout(new BorderLayout());

			//======== contentPanel ========
			{
				contentPanel.setLayout(new FormLayout(
					"default, $lcgap, 81dlu",
					"2*(default, $lgap), default"));

				//---- label1 ----
				label1.setText("Eingabeformat:");
				contentPanel.add(label1, CC.xy(1, 1));

				//---- Eingabe ----
				Eingabe.setHorizontalAlignment(SwingConstants.RIGHT);
				Eingabe.addCaretListener(new CaretListener() {
					@Override
					public void caretUpdate(CaretEvent e) {
						EingabeCaretUpdate(e);
					}
				});
				contentPanel.add(Eingabe, CC.xy(3, 1));

				//---- label2 ----
				label2.setText("Ausgabebetrag:");
				contentPanel.add(label2, CC.xy(1, 5));

				//---- Ausgabe ----
				Ausgabe.setHorizontalAlignment(SwingConstants.RIGHT);
				Ausgabe.setEnabled(false);
				contentPanel.add(Ausgabe, CC.xy(3, 5));
			}
			dialogPane.add(contentPanel, BorderLayout.CENTER);

			//======== buttonBar ========
			{
				buttonBar.setBorder(Borders.BUTTON_BAR_GAP_BORDER);
				buttonBar.setLayout(new FormLayout(
					"$glue, $button",
					"pref"));

				//---- okButton ----
				okButton.setText("OK");
				buttonBar.add(okButton, CC.xy(2, 1));
			}
			dialogPane.add(buttonBar, BorderLayout.SOUTH);
		}
		contentPane.add(dialogPane, BorderLayout.CENTER);
		pack();
		setLocationRelativeTo(getOwner());
		// JFormDesigner - End of component initialization  //GEN-END:initComponents
	}


	// JFormDesigner - Variables declaration - DO NOT MODIFY  //GEN-BEGIN:variables
	private JPanel dialogPane;
	private JPanel contentPanel;
	private JLabel label1;
	private static JFormattedTextField Eingabe;
	private JLabel label2;
	private JFormattedTextField Ausgabe;
	private JPanel buttonBar;
	private JButton okButton;
	// JFormDesigner - End of variables declaration  //GEN-END:variables
}

Hat jemand von Euch vielleicht eine Idee, wie ich einen Betrag aus einem JFormattedTextField in ein Double Field bekomme?

Vielen Dank im Voraus, :)

Viele Grüße
Jochen
 
G

Gast2

Gast
Und du hast keine vermutung woran das liegen könnte?
Java:
private void EingabeCaretUpdate(CaretEvent e) {
		double tmp_eingabe; String test_eingabe = Eingabe.getText();
		test_eingabe.replace(",", ".");
		if(test_eingabe.equals("")) {
			tmp_eingabe = 0;
		} else {
			tmp_eingabe = Double.parseDouble(Eingabe.getText());
			double tmp_ausgabe = tmp_eingabe * 1.95583;
			Ausgabe.setText((NumberFormat.getCurrencyInstance().format( Double.valueOf(tmp_ausgabe) )));
		}
		System.out.println("Eingabe: "+ tmp_eingabe);
	}
1. Methoden und Variablen schreibt man klein und in CamelCase
2. test_eingabe.replace(",", "."); die Zeile macht NICHTS
3. Falsche Methode verwendet du musst gar nicht parsen siehe
How to Use Formatted Text Fields (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F In Textfeld Kommazahl anzeigen aber ohne Komma eingeben AWT, Swing, JavaFX & SWT 14
S JTable erlaubt kein Komma um Dezimazahlen einzugeben..? AWT, Swing, JavaFX & SWT 2
T JComboBox Komma in Punkt umwandeln AWT, Swing, JavaFX & SWT 2
F JFormattedTextField für kg und Währung AWT, Swing, JavaFX & SWT 6
S JFormattedTextField dezimal variabler Länge AWT, Swing, JavaFX & SWT 12
Ghostman1711 Java JFormattedTextfield MaskFormatter ohne Leerzeichen AWT, Swing, JavaFX & SWT 3
N Swing JFormattedTextField keine Werte nach Formatzuweisung AWT, Swing, JavaFX & SWT 0
M European Article Number (EAN) in JFormattedTextfield AWT, Swing, JavaFX & SWT 3
L JFormattedTextField AWT, Swing, JavaFX & SWT 3
B Swing JFormattedTextField AWT, Swing, JavaFX & SWT 4
Y JFormattedTextfield - Aktualisierung und Beschränkung AWT, Swing, JavaFX & SWT 4
V Swing Nullpointer Exception bei JFormattedTextField AWT, Swing, JavaFX & SWT 4
S Swing JFormattedTextField - bei nicht korrekter Eingabe Inhalt überschreiben AWT, Swing, JavaFX & SWT 5
S Swing JFormattedTextfield markiert nicht gesamten Inhalt AWT, Swing, JavaFX & SWT 4
C Swing Button in Textfeld (JFormattedTextField) AWT, Swing, JavaFX & SWT 7
A jformattedtextfield unsichtbar und wieder sichtbar machen AWT, Swing, JavaFX & SWT 13
C Swing JFormattedTextField + Eurobetrag AWT, Swing, JavaFX & SWT 2
E Problem mit MaskFormatter und JFormattedTextField AWT, Swing, JavaFX & SWT 3
A EventListener für JFormattedTextField AWT, Swing, JavaFX & SWT 6
E Swing JFormattedTextField Live Validierung AWT, Swing, JavaFX & SWT 4
C Swing Default Werte für JFormattedTextField und Eingaben zurücksetzen AWT, Swing, JavaFX & SWT 5
G JFormattedTextField und DefaultButton AWT, Swing, JavaFX & SWT 6
B Swing JFormattedTextField auf mehreren JPanels in einer JTabbedPane AWT, Swing, JavaFX & SWT 3
G JFormattedTextField values AWT, Swing, JavaFX & SWT 8
R JFormattedTextField AWT, Swing, JavaFX & SWT 8
D Eingabemaske im JFormattedTextField ändern AWT, Swing, JavaFX & SWT 3
D JFormattedTextfield um Grafik erweitern AWT, Swing, JavaFX & SWT 15
N JFormattedTextField erst Verlassen, wenn Eingabe korrekt AWT, Swing, JavaFX & SWT 6
G JFormattedTextField lässt sich nicht mehr leeren AWT, Swing, JavaFX & SWT 4
N PropertyChangeListener an JFormattedTextField AWT, Swing, JavaFX & SWT 7
D Problem mit JFormattedTextField AWT, Swing, JavaFX & SWT 6
A Problem mit JFormattedTextField auslesen AWT, Swing, JavaFX & SWT 11
S JFormattedTextField und maximal 3 Stellen. AWT, Swing, JavaFX & SWT 11
M JFormattedTextField und Null-Werte AWT, Swing, JavaFX & SWT 4
E JformattedTextField, Dialog und weitere Kleinigkeiten . AWT, Swing, JavaFX & SWT 2
E Problem mit Validierende Eingabefeldern JFormattedTextField AWT, Swing, JavaFX & SWT 8
B JFormattedTextField mit DecimalFormat in ein Double AWT, Swing, JavaFX & SWT 11
C JFormattedTextField - nur bestimmte Zeichen zulassen AWT, Swing, JavaFX & SWT 3
H JFormattedTextField - Einen Preis eingeben lassen AWT, Swing, JavaFX & SWT 2
B Zeichen werden im JFormattedTextField überschrieben AWT, Swing, JavaFX & SWT 3
H JFormattedTextField AWT, Swing, JavaFX & SWT 4
W IP-Adresse mit JFormattedTextField AWT, Swing, JavaFX & SWT 5
F JFormattedTextField formatieren AWT, Swing, JavaFX & SWT 7
J [JFormattedTextField] Nur Zahlen eingebbar AWT, Swing, JavaFX & SWT 3
S [JFormattedTextField] Ja wie denn nun? AWT, Swing, JavaFX & SWT 2
G Datumseingabe mit JFormattedTextField AWT, Swing, JavaFX & SWT 4
B Wert bei JFormattedTextField automatisch aktualisieren AWT, Swing, JavaFX & SWT 2
H Frage zu JFormattedTextField AWT, Swing, JavaFX & SWT 2
G Problem mit JFormattedTextField AWT, Swing, JavaFX & SWT 3
M Datumseingabe in ein JFormattedTextfield AWT, Swing, JavaFX & SWT 2
F Problem mit JFormattedTextField AWT, Swing, JavaFX & SWT 4
A JFormattedTextField - vertical misalignment problems... AWT, Swing, JavaFX & SWT 12

Ähnliche Java Themen

Neue Themen


Oben