JFormattedTextField mit DecimalFormat in ein Double

Status
Nicht offen für weitere Antworten.

BlackReloaded

Aktives Mitglied
Hi Leute,
es tut mir leid ich bin zwar erst seit gestern mit an Board, aber habe schon eine Frage :cry:

Ich suche den Fehler nun schon seit 4 Stunden und komme einfach nicht weiter, ich hoffe einer von euch kann mir helfen...

Also zum Problem:
Ich habe ein JFormattedTextField das ich mit DecimalFormat formatiere, soweit geht es auch.
Bei einem Event will ich mir aus dem Textfeld die Daten holen und in einem String zwischenspeichern, später dann mit Double.parseDouble(String) umwandeln und in die Datenbank schreiben.

Der Fehler liegt nun Darin das Double ja mit dem "." also Trennzeichen arbeitet DecimalFormat das jedoch leider als "," interpretiert da meine JRE als Default de hat.

Wie kann ich ihm nun sagen, dass er das als "." nutzen soll....

Ich nutze Jdk 1.5.0_05.

Code:
.
.
betrag_monat = new JFormattedTextField(new DecimalFormat("#.##"));
betrag_monat.setText("1.00");
.
.
public String[] getEinnahme()
 {
  String temp = "0";
  if(bezahlt_ein.isSelected()) temp = "1";
  String[] ret = {
    this.kontenliste[soll_combo.getSelectedIndex()][0],
    this.kontenliste[haben_combo.getSelectedIndex()][0],
    betrag.getText(),
    datum.getText(),
    beschreibung.getText(),
    temp
  };
  return ret;
 }
.
.
Double.parseDouble(ret[2])
.
.

Vielen Dank im Vorraus für die Hilfe....

MFG
Marc
 
S

SlaterB

Gast
> es tut mir leid ich bin zwar erst seit gestern mit an Board, aber habe schon eine Frage icon_cry.gif

> Ich suche den Fehler nun schon seit 4 Stunden und komme einfach nicht weiter, ich hoffe einer von euch kann mir helfen...

wenn keiner Fragen stellt kann das Forum geschlossen werden,
mehr als 1 Stunde muss es nicht sein ;)

----------

wenn der Benutzer 1,00 eingibt und Double.parseDouble() . verlangt, dann musst du das Komma durch den Punkt ersetzen,
so ist das nun mal,

aber statt Double.parseDouble() wird doch wohl auch das DecimalFormat-Objekt eine Parse-Operation haben?
benutz doch diese
 

BlackReloaded

Aktives Mitglied
Sry,

habe gerade eine Pause gemacht und nun ist es mir endlich eingefallen. :lol:
Ich weiß zwar nicht ob das die feine englische Art ist, aber ich habe es nun so gemacht:

Code:
betrag_monat = new JFormattedTextField(new DecimalFormat("#,##"));
betrag_monat.setText("1.00");

Naja so funktioniert es wenigstens.... :lol:
Manchmal sieht man den Wald vor lauter Bäumen nicht mehr.

MFG
Marc
 

BlackReloaded

Aktives Mitglied
Okay thanks,

jedoch funktioniert es doch nicht so wie ich es mir gedacht habe.

Sobald ich nun große Werte eintrage mach er alle 2 stellen ein "."
Wie geht das mit dem parse von DecimalFormat-Objekt eine Parse-Operation ?

Ich msus es aber Trotzdem in einem String zwischen speichern.
 
S

SlaterB

Gast
http://java.sun.com/j2se/1.4.2/docs/api/java/text/DecimalFormat.html

eine der Operationen die mit p anfangen,
ob das dann alle deine Probleme löst weiß ich aber nicht,
sehe nicht wirklich durch was du vor hast,
was wann warum scheitert,

z.B. gar nicht warum du dem Textfeld am Anfang was setzt
betrag_monat.setText("1.00")
und geht das überhaupt, ich denke ein Komma wird verlangt?, verwirrend...

außerdem sieht
new DecimalFormat("#.##")
eher nach Punkt als Komma aus, verwirrend...
 

BlackReloaded

Aktives Mitglied
Also ich hätte ganz gerne einen "." da Double intern ja mit einem "." arbeitet ( amerikanisch halt ) so wenn ich dem nun aber "#.##" nutzt er aber die deutsche schreibweise also nutzt "#,##" und wenn ich dne string versuche zu parsen gehts natürlich schief.....

also eigentlich möchte ich nur ein textfield das sicherstellt das da nur original double werte eingetragen werden können.

Und ich speichere das in einem String Array zwischen um es dem SQL-Objekt einfacher übergeben zu können.

Danke für die Seite, aber die kenne ich schon. Die hat leider nicht geholfen da die auf english ist und mit der englishen JRE arbeiten.

Klarer geworden ?!

MFG
 
S

SlaterB

Gast
wenn ich ein Programm wie
Code:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DecimalFormat;

import javax.swing.JFormattedTextField;
import javax.swing.JFrame;

public class TestGUI extends JFrame {

	JFormattedTextField f = new JFormattedTextField(new DecimalFormat("#,##"));

	public TestGUI() throws Exception {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		f.setText("1.00");

		f.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {
				System.out.println(f.getText());
			}

		});

		getContentPane().add(f);
		setSize(150, 100);
		setVisible(true);
	}

	public static void main(String[] args) throws Exception {
		new TestGUI();
	}

}

habe, dann kann ich da Punkt und Komma live eingeben wie mir beliegt,
kann Punkt und Komma mit der setText()-Operation eingegen,
auch egal,

es wird beides, Punkt und Komma, anzeigt und bei Enter ausgelesen,
wo tritt das Problem auf? wer formatiert was?
wenn da 1.0 angezeigt wird, dann kommt doch wohl bei getText() nicht 1,0 raus?
oder doch? bei mir nicht

---------

> Die hat leider nicht geholfen da die auf english ist und mit der englishen JRE arbeiten.

was heißt das? dass dir die Klassenbibliothek egal ist,
und wenn immer du eine Frage hast, dann soll dir jemand die passenden Operationen nennen?
wie hast du eigentlich JFormattedTextField gefunden? ;)

parse schreibt sich mit p, dann a, dann r, dann s und dann e,
das geht auch ohne English (sorry ;) )
 

BlackReloaded

Aktives Mitglied
Ich kann Englisch und ich weiß auch wie man das Schreibt, sry wenn ich es gerade falsch geschrieben habe.

Und die Bibliotheken sind mir keinesfalls egal, ich arbeite nur mit den Doc's, das Problem ist das die JRE eine Locale hat in der drinne steht "de" oder "uk" danach dreht er "." und "," um.
Code:
JFormattedTextField f = new JFormattedTextField(new DecimalFormat("#,##"));

und das dann auslese dann sind die Tausendertrennzeichen ein "," bzw er spielt ganz verrückt und macht jedes 2. Zeichen ein ","
wenn ich ein "#.##" mache dann kann man im Feld 3,23 eingeben und er und er sagt das ist Richtig, wenn ich nun aber mit getText() drauf zugreife bekomme ich lögischerweise 3,23 ich will aber 3.23 haben.
Mache ich es andereherum also so wie du "#,##" gehts gar nicht mehr.

Was meinste warum ich so am verzweifeln bin.

Edit: Das ich etwas mit setText() setzt soll nur dafür diehnen damit dort von vornherein etwas drinnen steht.
 
S

SlaterB

Gast
> Ich kann Englisch und ich weiß auch wie man das Schreibt, sry wenn ich es gerade falsch geschrieben habe.
> Und die Bibliotheken sind mir keinesfalls egal, ich arbeite nur mit den Doc's

das dreht sich im Kreis, ich hatte parse buchstabiert, damit du das so z.B. in die Browser-Suche eingeben kannst,
es bleibt immer noch dabei:
wenn du die parse-Operation von DezimalFormat sucht, dann schaue in die API

---------

du willst 3,23 eingeben und dann 3.23 mit getText() auslesen, das ist doch mal eine Aussage,
allerdings habe ich keine Ahnung wie das geht ;), vielleicht andere

bei mir liefert jedenfalls getText() genau das was drinsteht,
das hat nix mit Locale zu tun, sondern mit dem was man eingetippt hat ;)
(bin kein Experte für JFormattedTextField, gebe nur meine Tests mit dem angegeben Programm wieder),

das 'gar nix mehr geht' kann ich in meinem Programm nicht beobachten,
liegt vielleicht wieder an meiner zu alten Java-Version 1.4.2

da muss dir wohl jemand anders helfen, vielleicht in einem neuen Thread,

oder du postest mehr von deinem Code,
wann wird getEinnahme() aufgerufen?
ist es kein Problem, dass das definierte JFormattedTextField betrag_monat heißt,
getText() aber an dem Objekt betrag gerufen wird?
 

BlackReloaded

Aktives Mitglied
So ich denke ich habe es nun wircklich gelöst.

Also den ganzen Code hätte ich nicht posten können da es zu viel wäre.(etwa 5k Zeilen).

Um deine Fragen noch zu beantworten, ja das war alles so ok und getestet.


Code:
String z = "" + betrag_monat.getValue();

Wie mir erscheint greift die Formatierung nur ein wenn man getValue() nutzt, nicht aber, wenn getText() genutzt wird...

Naja wie auch immer so Funktioniert es nun und das reicht. :lol:

Zu dem anderen: Belassen wir es so. :bae:
Aber glaube mir ein ich hatte alles durchsucht.

MFg

Marc Kohlbau[/code]
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
B Swing Betrag mit Komma aus jformattedtextfield auslesen. AWT, Swing, JavaFX & SWT 2
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
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
CptK Point2D.Double Kurven - Beschriftung und richtiges Anklicken AWT, Swing, JavaFX & SWT 7
CptK Wie funktioniert contains() für Path2D.Double AWT, Swing, JavaFX & SWT 10
B AWT GUI nimmt nur 19 Ziffern an, obwohl Max Wert von Double größer ist AWT, Swing, JavaFX & SWT 7
T Swing Double Click bei Buttons in JTable AWT, Swing, JavaFX & SWT 9
L 2D-Grafik Frage zu Ellipse2D.Double, Abfrage, ob Punkt enthalten ist funktioniert nicht AWT, Swing, JavaFX & SWT 3
S Polygon mit double-Koordinaten AWT, Swing, JavaFX & SWT 2
N Double Buffern von BILDERN AWT, Swing, JavaFX & SWT 6
V Applet Double Buffering AWT, Swing, JavaFX & SWT 2
B Graphics2d drawString mit double Werten? AWT, Swing, JavaFX & SWT 5
O 2D-Grafik Rectangle mit double Werten zeichnen AWT, Swing, JavaFX & SWT 3
T 2D-Grafik Double Buffering AWT, Swing, JavaFX & SWT 7
lumo SWT Double Buffering AWT, Swing, JavaFX & SWT 5
M Object[][] in double[][] casten AWT, Swing, JavaFX & SWT 6
A aus einem Textfeld in double parsen AWT, Swing, JavaFX & SWT 10
K Flackern trotz Double-Buffering AWT, Swing, JavaFX & SWT 10
J JSlider mit Double Werten AWT, Swing, JavaFX & SWT 5
T JTextField nur Double werte eingeben AWT, Swing, JavaFX & SWT 2
A Explicit casting Point2D.Double AWT, Swing, JavaFX & SWT 3
A TableRowSorter für double Werte mit Formatierung AWT, Swing, JavaFX & SWT 3
iLoveTheInternet AWT Rectangle2D.Double intersecs AWT, Swing, JavaFX & SWT 6
hdi Wie implementiere ich Double Buffering AWT, Swing, JavaFX & SWT 12
R drawString mit double Koordinaten AWT, Swing, JavaFX & SWT 5
L JTextField Umwandeln in double-Werte AWT, Swing, JavaFX & SWT 5
K double / int einlesen? AWT, Swing, JavaFX & SWT 12
G Frage zu Double Buffering AWT, Swing, JavaFX & SWT 4
L double in JTable formatieren AWT, Swing, JavaFX & SWT 7
P Integer, Double, etc mit getTableCellRendererComponent AWT, Swing, JavaFX & SWT 6
P Double-Werte sortieren mit TableRowSorter AWT, Swing, JavaFX & SWT 2
U Double Buffering AWT, Swing, JavaFX & SWT 6
J Double-Buffering zu langsam AWT, Swing, JavaFX & SWT 4
S double in String umwandeln AWT, Swing, JavaFX & SWT 6
L Double-Buffering AWT, Swing, JavaFX & SWT 2
R Double in der Tabelle statt String und Integer AWT, Swing, JavaFX & SWT 3
Student "Dicke" einer Linie - Line2D.Double AWT, Swing, JavaFX & SWT 12
G Double-Click f. alle Komps UNIX u. WIN verschieden ? AWT, Swing, JavaFX & SWT 5
D double Buffering abschalten? AWT, Swing, JavaFX & SWT 4
G Ellipse2D.Double funktioniert nicht AWT, Swing, JavaFX & SWT 3
W SWT - Tree: Problem mit Double-Click expand AWT, Swing, JavaFX & SWT 5
L Double Buffering bei JTable AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben