JTextField formatieren

Status
Nicht offen für weitere Antworten.

cossmoss

Mitglied
Hallo,

kennt vielleicht jemand eine einfach Lösung um ein Textfeld so zu formatieren, dass er nur 4-stellige Integerwerte beinhaltet?
Und man einfach mit getvalue einen Integerwert erhält?

Würde mich über eine Antwort freuen...
 
Hi,

ich würde ein JFormattedTextField nehmen mit einem MaskFormatter:

Code:
myFormattedTextField = new JFormattedTextField(
        new MaskFormatter("####"));

(# steht für eine Ziffer).

Hoffe es hilft ...
 
Erstmal vielen Danke für die Antwort.

Allerdings hatte ich dies schon probiert. Mein Problem war, dass ich zum Beispiel eine Eingabe 4 nicht manuell tätigen konnte, da er dies als Stringwert "4 " interpretiert hat und als ungültig angesehen hat. Mit setPlaceholder habe ich dann gesagt er soll den Rest mit 0 en auffüllen. Allerdings konnte ich dann dem Textfeld nicht mehr einen Integerwert im Javaprogramm zuweisen, da er dann statt 4 eine 4000 geschrieben hat. Außerdem hat er dann bei einer manuellen Eingabe von 01 immer komischer Weise eine 10 gemacht???

Wär super wenn es dafür eine Lösung gäbe...
 
Hi,

irgendwie kann ich das von dir geschriebene in keinen Zusammenhang mit dem JFormattedTextField bringen. Sicherlich sind im Text des Feldes nur Strings gespeichert, aber die kannst du ja nach der Eingabe parsen.

Zeig mal deinen Code, vielleicht verstehe ich dann was du meinst.
 
Vielen Dank für die Bemühungen! Aber ich habe jetzt nach langem hin und her doch noch selbst eine Lösung gefunden, indem ich NumberFormat verwendete und nach jeder Eingabe in einer insertUpdate Methode den Text prüfe.
Trotzdem nochmal vielen vielen Dank für die Antworten!!!
PS: Wenn Interesse bestehen sollte kann ich auch den jetzigen Code schicken.
 
Ich habe ein ähnliches Problem was ich an diesen Thread anhängen möchte

Code:
JFormattedTextField dateField = new JFormattedTextField(new MaskFormatter("##.##.####"));

Java möchte gerne das ich diesen Code mit einem Try Catch umgebe was dann so aussieht:

Code:
try{
		JFormattedTextField dateField = new JFormattedTextField(new MaskFormatte("##.##.####"));
	}
	catch(ParseException e){
		System.out.println(e);
	}

aber er Meckert weiter ???:L
Fehlermeldung hilft mir nicht weiter, da er 2 Zeilen höher was ammeckert, was aber Korrekt ist
(Syntox error on Token ";" , {expected after this token) lösche ich aber oben gennantes raus ist auch der Fehler weg... hoffe es kann mir einer helfen 🙂 😳
 
Hi,

ich gehe mal davon aus, dass "MaskFormatte" (ohne "r") aus deinem Beispiel oben nur ein Tippfehler ist. Daher die Bitte um den gesamten Code.
 
Dit hat gesagt.:
Code:
try{
		JFormattedTextField dateField = new JFormattedTextField(new MaskFormatte("##.##.####"));
	}
	catch(ParseException e){
		System.out.println(e);
	}

Das ist sowieso Unsinn, da dein dateField nur lokal während
der Abarbeitung des try-Blocks existiert und sofort darauf
dem Garbage-Collector zur Nachspeise gereicht wird.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben