2009-04-21 7 views
1

Ich arbeite gerade an einer Swing-App und ich habe ein paar JTextAreas, die geparst, in Daten umgewandelt und dann zu einer MySQL-Datenbank hinzugefügt werden. Einer ist ein Datumsfeld, die anderen sind DateTime. Ich versuche mit InputVerifier sicherzustellen, dass sie korrekt eingegeben werden.In Swing verwenden Sie einen InputVerifier, um Datum und Uhrzeit zu überprüfen

Ich habe einen InputVerifier erstellt, der versucht, den Text in ein Datum mit DateFormat.parse() umzuwandeln und das funktioniert meistens, aber es gibt zwei Fehler: Erstens kann es nicht überprüfen, ob ich nur ein Date habe, eher als ein Datum und eine Uhrzeit Zweitens kann es nicht überprüfen, ob ich sowohl ein Datum und eine Uhrzeit, als nur eine von ihnen habe.

Gibt es einen Weg um dies zu umgehen? Oder eine bessere Möglichkeit, Datumsfelder in Swing zu validieren, ist mir nicht bewusst?

Antwort

3

Swing unterstützt die Eingabe von Daten in Textfelder mit einer JFormattedTextField mit einer DateFormatter. Mit einem DateFormatter können Sie ein DateFormat-Objekt angeben, das entweder ein reines Datumsfeld oder ein Datums- und Uhrzeitfeld haben kann.

Werfen Sie einen Blick auf How To Use Formatted Text Fields im Swing-Tutorial als eine Einführung.

1

Nur ein Gedanke: Sie könnten ein SpinnerDateModel mit einem JSpinner anstatt eines Textfelds in Betracht ziehen. Vielleicht könnten Sie mit dem Datum-nur-Feld umgehen, indem Sie setCalendarField(Calendar.DAY) anrufen - ich habe es nie selbst getan, obwohl ich nicht sicher bin.

+0

+1 nur für die Auswahl des Tagesfelds. Nicht perfekt, aber es hilft –