Textfelder formatieren

  • Themenstarter Themenstarter Robert
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
R

Robert

Gast
Hi!!!

Hätte mal ne Frage!!! Hab folgendes Problem!!!

Ich hätte gerne so eine Vorformatierung in einem JTextfield...

also das man

1000,00

eingeben kann

also

1{Zahl},(Zahl,Zahl)

So eine Vorformatierung halt.

Der Benutzer kann am ANfang beleieg viele Vorkommastellen schreiben, aber nur genau 2 nachkommastellen.

Würde das irgendwie gehn???

Wäre super wenn Ihr mir weiterhelfen würdert!!!
 
Hi!!!

Also danke für die sehr schnelle Antwort!!!

Gäbe es denn nicht noch eine andere Möglichkeit???

Hab damit bissle rumgefummelt aber funktioschnakelt nicht so richtig..

Wäre super nett von Euch!!!

Würde mich risig freuen!!!

*verzweifelnAmBin* 🙁
 
Eine Möglichkeit ist, das Document des Textfeldes zu überschreiben
Hier eine einfache Variante:
Code:
textField.setDocument(
  new PlainDocument()
  { 
    public void insertString(int offs, String str, AttributeSet a) throws BadLocationException 
    {
      // Den resultierenden String zusammensetzen 
      String s = new StringBuffer(getText(0, getLength())).insert(offs, str).toString();
      // und gucken, ob Format stimmt
      if(s.matches("[0-9]+(,[0-9]{0,2})?")) 
        super.insertString(offs, str, a); 
      // sonst raus mit beep
      else 
        Toolkit.getDefaultToolkit().beep(); 
    } 
  }
);
Du kannst es auch so erweitern, dass die Anzahl der Vor- und Nachkommastellen
einstellbar ist, oder dass nur ein bestimmter Zahlenbereich zulässig sind etc.

Gruß,
Michael
 
Semi Du bist mein Held *MEGAFREU*

JUHUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU

Ab nun werd ich zu Dir beten ;-)

VIELEN DANK!!!

Hab da versucht rumzubasteln und et ging einfach nicht... Nun schau ich heute hier ins Forum rein und dann diese eprfekte Antwort!!! Du hast mir mindestens 20 Stunden Arbeit erspart!!!

Könnte Dich küssen!!!

*FREU* *FREU* *FREU* *FREU**FREU* *FREU**FREU* *FREU**FREU* *FREU**FREU* *FREU**FREU* *FREU**FREU* *FREU**FREU* *FREU**FREU* *FREU*

VIELEN DANK!!!

YEAH!!!

JUHUUUUUUUUUUUUUUUUUUUUUUUUUUUUU

Du bist der Meister!!!

YEAH!!!!!!!!!!!!!!!!!!!!!!!

JUHUUUUUUUUUUUUUUu

Du weisst Sachen!!! Schon Krass!!!

Könnte ich dich aber nochmal dazu was fragen???

Dieses setDocument... Wie muss ich mir das vorstellen??? Wird das bei jedem Tastendruck aufgerufen??? Wäre noch super wenn DU mir das erklären könntest... Mit dem Regulären Ausdruck ist perfekt!!! Wollte mich damit besdhäftigen, aber hätte ne halbe Ewigkeit gedauert das so hinzubejkommen!!! VIELEN DANK!!!
 
na da ist ja einer gluecklich :lol:

die setDocument wird nur beim initiieren des feldes aufgerufen, also nur einmal - die methode aber insertString dagegen immer wenn ein String eingefuegt werden soll
 
Hi!!!

VIELEN DANK!!!

Das hilft weiter!!!

Jau überglücklich ich bin *freu*!!!

DANK DIR!!!

Werde Euch weiterempfehlen;-)..
 
LOOOOOOOOOOOOOOOOOOOOOOOOOOL

Ne nimm nur bunte Pillen ein;-)...

Gäbe es abre auch eine Möglichkeit, nicht nur an dem String im Eingabefeld was anzuhängen??? Die insertString() Methode hängt ja nur Zeichen in dem Eingabefeld an. Könnte ich aber auch den gesamten Text der im Eingabefeld steht ersetzen???

So mit setText() gehts leider nicht, oder???

Hab das Besipeil von dem Meister-semi!!! Mit dem newPlainDocument und dem setDocument()....
 
ich hab auch mal so etwas gebraucht, hab mir etwas nettes gebastelt, was auf einem interface basiert, mit hilfe du dem textfeld informationen gibst, mit meinen klassen kannst du ein datumsfeld auch machen das vor editiert ist mit:
__.__.____ und die underscores durch die zeichen erstetzt (berücksichtigt auch gültigkeit)

wenn du willst kann ich dir die sourcen schicken... bei interesse poste halt deine email adresse

vielleicht hilft es dir ja weiter
 
Hallo Niki, könntes du bitte auch für mich ein Gefalen tun und die sourcen auch zum mir posten ?
es währe ganz ganz Net von dir.

meine email tophardware@web.de

Vielen Dankn in Voraus

Mit freundlichen Grüßen

Bitburger
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben