JFormattedTextField formatieren

Status
Nicht offen für weitere Antworten.

fomobrain

Mitglied
Hallo Leudz,

hab ein wahrscheinlich Newb-Problem was mich jetzt seit schon seit längere Zeit quält.

Habe eines MaskFormatter der dazu dient das Datum in ein JFormattedTextField einzulesen.
Code:
MaskFormatter datemask;
datemask = new MaskFormatter("##.##.####"); 
datemask.setPlaceholderCharacter('_');

Das Problem an der Sache ist das den nicht einfach bei Erstellung des Textfeldes zuweisen kann, da beim Öffnen
des Programms Datensätze aus einer Datenbank gelesen werden, durch die geblettert werden kann.

Ich habe quasi eine Prozedur Neu() die alle Textfelder(Inhalt) löscht und somit eben auch eventuell übergebene Formatter.
Wenn ich nun im Anschluss per install den Formatter wieder zuweise, wird er zwar angezeigt, aber nich überschrieben bzw. es wird nicht automatisch vom ersten in den zweiten Bereich und vom zweiten in den dritten gesprungen.
Es wird also einfach meine Formatierung nach hinten geschoben und die Eingabe hinteereinander gesetzt.
- also [ 20.04.2006__.__.____ ] statt [ 20.04.2006 ] (den OverrideMode ist true)

Code:
  TFWunschTermin.setText("");
  datemask.install(TFWunschTermin);         
  TFAnsprechPartner.setText("");
  TABeschreibung.setText("");
  TFBearbeiter.setText("");
  TFPlanStartTermin.setText("");
  datemask.install(TFPlanStartTermin);
  TFPlanFertigTermin.setText("");
  datemask.install(TFPlanFertigTermin);
  CBFertig.setSelectedItem("");
  TFFertigTermin .setText("");
  datemask.install(TFFertigTermin);
  TFFertigPerson.setText("");
  CBTest.setSelectedItem("");
  TFTestTermin.setText("");
  datemask.install(TFTestTermin);
  TFTestPerson.setText("");
  CBHilfe.setSelectedItem("");
  TFHilfeTermin.setText("");
  datemask.install(TFHilfeTermin);

Ich weiß das meien Variante mit leeren Text setzten ziemlich Steinzeitmäßig abgeht, aber ich krieg das ResultSet einfach nich überschrieben bzw. kann insertRow ausführen (Scheiss MS SQL 2000).

In schierer Verzeiflung im Voraus dankbar
 

semi

Top Contributor
Der Formatter wird bei Löschen des Inhalts nicht entfernt. Du brauchst ihn nicht
jedes Mal neu zu installieren. Einfach setText(null) reicht.
Den von dir genannten Fehler kann ich nicht nachvollziehen. Wenn Formatter
gesetzt ist, dann wird nur die Eingabe akzeptiert, die "formattierbar" ist.
Eine solche Verschiebung der Eingabemaske/Platzhalter habe ich noch nie gesehen. :bahnhof:
 

fomobrain

Mitglied
Hi,

so hatte ich das auch schon, nur das Problem hierbei, das komischerweise nur das 6te Textfeld den Formatter bekommt,
und das die anderen 5 erst formatiert werden wenn ich aus ihnen rausspringe, d.h. das ersdte Mal den Focus verlieren. ???

Lauter merkwürdige Dinge geschehen hier...
 

semi

Top Contributor
fomobrain hat gesagt.:
Hi,

so hatte ich das auch schon, nur das Problem hierbei, das komischerweise nur das 6te Textfeld den Formatter bekommt,
und das die anderen 5 erst formatiert werden wenn ich aus ihnen rausspringe, d.h. das ersdte Mal den Focus verlieren. ???

Lauter merkwürdige Dinge geschehen hier...
Ruf Mulder und Scali an. ;)

Ändere die Reihenfolge, also zuerst Formater installieren, dann Wert setzen. Was passiert?
 

semi

Top Contributor
Aghh!! Ich bin blind. :autsch: Du installierst den gleichen Formatter in mehrere Textfelder.
Ein Formatter kann nur in einem gleichzeitig installiert werden.

Verwende am besten FormatterFactory für die Textfelder
Code:
class DateFormaterFactory extends JFormattedTextField.AbstractFormatterFactory
{
  private MaskFormatter formatter; 
    
  public DateFormaterFactory(String dateMask) throws ParseException
  {
    formatter = new MaskFormatter(dateMask);
    formatter.setPlaceholderCharacter('_');
  }

  public JFormattedTextField.AbstractFormatter getFormatter(JFormattedTextField tf) 
  {
    return formatter;
  }
}

// dann irgendwo im Code

DateFormaterFactory ff = new DateFormaterFactory("##.##.####");

TFWunschTermin.setFormatterFactory(ff);
TFAnsprechPartner.setFormatterFactory(ff);
TFPlanStartTermin.setFormatterFactory(ff);
TFPlanFertigTermin.setFormatterFactory(ff);
TFFertigTermin.setFormatterFactory(ff);
usw.
Wenn du noch MaskFormatter#stringToValue(String value) und MaskFormatter#valueToString(Object value)
selbst so implementierst, dass es mit Date Objekten arbeitet, kannst du direkt mit den Daten aus
der Datenbank arbeiten, statt diese zuerst in Strings zu konvertieren.

Gruß,
Michael
 

fomobrain

Mitglied
Hi,
bin jetzt nich mehr auf Arbeit, probiere es aber morgen früh gleich mal so aus. klingen tuts auf jeden Fall gut. Vielen Dank

Wegen dem String den muss ich machen da ich das ganze ja in nem Textfeld wiedergebe.

Newb aus und Ende...
 
G

Gast

Gast
Habs implementiert, fkt. wunderbar, allerdings muss ich trotzdem für
jedes Textfeld ne eigene Maske erstellen, das is doch eigentlich en bisschen umständlich, und mit der Klasse hat ich gedacht sollte es eigentlcih so gehen, mmmhhh naja weniger merkwürdig als all dier anderen Merkwürdigkeiten.

Also mach jetzt mit dem eigentlcihen Programm, Vielen Dank für deien Hilfe

Greetings Christian
 
G

Gast

Gast
hier noch der code
Code:
MyFormatterFactory datemask  = new MyFormatterFactory("##.##.####");

MyFormatterFactory datemask2 = new MyFormatterFactory("##.##.####");

MyFormatterFactory datemask3 = new MyFormatterFactory("##.##.####");

MyFormatterFactory datemask4 = new MyFormatterFactory("##.##.####");

MyFormatterFactory datemask5 = new MyFormatterFactory("##.##.####");

MyFormatterFactory datemask6 = new MyFormatterFactory("##.##.####");
         
TFWunschTermin.setFormatterFactory(datemask); 
TFPlanStartTermin.setFormatterFactory(datemask2);
TFPlanFertigTermin.setFormatterFactory(datemask3);
TFFertigTermin.setFormatterFactory(datemask4);
TFTestTermin.setFormatterFactory(datemask5);
TFHilfeTermin.setFormatterFactory(datemask6);
und dei Klasser halt 1zu1 von dir
 
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
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
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
S GridBagLayout Felder formatieren AWT, Swing, JavaFX & SWT 1
L JavaFX TableColumn formatieren? AWT, Swing, JavaFX & SWT 3
M Strings im JTextPane vergleichen und mit StyledDocument formatieren AWT, Swing, JavaFX & SWT 3
N jFreeChart einzelne Punkte anwählen und Formatieren AWT, Swing, JavaFX & SWT 0
G .txt-Datei einlesen /formatieren in JTextfield ?? AWT, Swing, JavaFX & SWT 8
M JavaFX TextArea richtig formatieren AWT, Swing, JavaFX & SWT 4
B 2D-Grafik String drehen/platzieren/formatieren in bestimmten Bereich AWT, Swing, JavaFX & SWT 1
M Swing JLabel mit fester größe nachträglich formatieren AWT, Swing, JavaFX & SWT 2
G JavaFX TextField Eingabe formatieren/einschränken AWT, Swing, JavaFX & SWT 2
O Swing JFreechart subtitle formatieren AWT, Swing, JavaFX & SWT 3
M Swing JEditorPane: Text formatieren AWT, Swing, JavaFX & SWT 2
H Komponenten anwendugsweit formatieren AWT, Swing, JavaFX & SWT 6
N Zellen einer JTable unterschiedlich formatieren AWT, Swing, JavaFX & SWT 7
trash Stringinhalt formatieren AWT, Swing, JavaFX & SWT 3
I Schrift und Farbe formatieren, und zwar pro Linie... AWT, Swing, JavaFX & SWT 4
M AWT text im applet formatieren AWT, Swing, JavaFX & SWT 5
G JTextArea: String formatieren AWT, Swing, JavaFX & SWT 2
? Tabelle formatieren - auch ohne CellRenderer? AWT, Swing, JavaFX & SWT 6
S JTextPane - markierten Text Formatieren AWT, Swing, JavaFX & SWT 11
M JTextFeld Formatieren AWT, Swing, JavaFX & SWT 2
G SWT: Markierten Text per Buttondruck formatieren AWT, Swing, JavaFX & SWT 3
L Tabellen formatieren ? AWT, Swing, JavaFX & SWT 4
L double in JTable formatieren AWT, Swing, JavaFX & SWT 7
T Datum in Textfeld automatisch formatieren AWT, Swing, JavaFX & SWT 8
C JTextField formatieren AWT, Swing, JavaFX & SWT 8
I Mehrzeilige Buttons formatieren AWT, Swing, JavaFX & SWT 10
S Datum formatieren AWT, Swing, JavaFX & SWT 19
R Tabelle formatieren AWT, Swing, JavaFX & SWT 12
P [TextArea] Text Formatieren AWT, Swing, JavaFX & SWT 4
N MenüBar formatieren? AWT, Swing, JavaFX & SWT 2
G Text einer JTextArea formatieren fett, kursiv, unterstr. AWT, Swing, JavaFX & SWT 1
A JTextField formatieren AWT, Swing, JavaFX & SWT 3
R Textfelder formatieren AWT, Swing, JavaFX & SWT 11

Ähnliche Java Themen


Oben