DateField
Die DateField-Komponente ermöglicht es Benutzern, ein Datum nach Jahr, Monat und Tag einzugeben oder auszuwählen. Sie verarbeitet die Validierung automatisch, sodass falsch formatierte Daten erfasst werden, bevor das Formular eingereicht wird.
Verwendung von DateField
This class is a Field component, and inherits its features and behaviors. For an overview of Field properties, events, and other important information, please refer to the Field documentation.
DateField erweitert die gemeinsame Field-Klasse, die gemeinsame Funktionen für alle Feldkomponenten bereitstellt. Das folgende Beispiel erstellt Abreise- und Rückkehr-Datenfelder, die synchron bleiben, mit Mindest- und Höchstbeschränkungen, um den auswählbaren Bereich zu beschränken.
Code anzeigen
- DateFieldView.java
Feldwert (LocalDate)
Die DateField-Komponente speichert ihren Wert intern als LocalDate-Objekt, das ein Datum ohne Zeit- oder Zeitzoneninformationen darstellt. Dies ermöglicht eine präzise Handhabung von kalenderbasierten Eingaben über verschiedene Systeme hinweg.
Während der Anzeigewert sich an die Browsersprache des Benutzers anpasst und sicherstellt, dass die formatierung regional vertraut ist (z. B. MM/DD/YYYY in den Vereinigten Staaten oder DD.MM.YYYY in Europa), basiert der geparste Wert stets auf dem festen Format yyyy-MM-dd.
Abrufen und Setzen des LocalDate-Wertes
Um den aktuellen Wert abzurufen, verwenden Sie die Methode getValue():
LocalDate value = dateField.getValue();
Um den Wert programmgesteuert festzulegen, verwenden Sie die Methode setValue():
dateField.setValue(LocalDate.of(2024, 4, 27));
Verwendung von setText()
Sie können auch einen Wert mithilfe eines rohen Strings zuweisen, dieser muss jedoch dem genauen Format yyyy-MM-dd entsprechen:
dateField.setText("2024-04-27"); // gültig
dateField.setText("04/27/2024"); // ungültig
Bei der Verwendung der Methode setText() wird eine IllegalArgumentException ausgelöst, wenn die Komponente die Eingabe im Format yyyy-MM-dd nicht parsen kann.
Verwendungen
Das DateField ist ideal, um Daten in Ihrer App auszuwählen und anzuzeigen. Hier sind einige Beispiele, wann das DateField verwendet werden sollte:
-
Veranstaltungsplanung und Kalender: Datumsfelder sind unerlässlich in Apps, die die Planung von Veranstaltungen, die Buchung von Terminen oder das Festhalten wichtiger Daten beinhalten.
-
Formulareingaben: Vereinfachen Sie den Auswahlprozess für ein Datum für einen Benutzer, der ein Formular ausfüllt, das ein Datum erfordert, wie zum Beispiel einen Geburtstag.
-
Buchungs- und Reservierungssysteme: Apps, die Buchungs- und Reservierungssysteme beinhalten, benötigen oft von den Benutzern die Eingabe spezifischer Daten. Ein Datumsfeld vereinfacht den Prozess und sorgt für eine akkurate Datenauswahl.
-
Aufgabenmanagement und Fristen: Datumsfelder sind von Wert in Apps, die Aufgabenmanagement oder das Setzen von Fristen beinhalten. Benutzer können Fälligkeitsdaten, Startdaten oder andere zeitkritische Informationen einfach angeben.
Min- und Max-Wert
Der Min-Wert
Die Methode setMin() definiert das früheste Datum, das ein Benutzer in die Komponente eingeben kann. Wenn die Eingabe früher als das angegebene Minimum ist, schlägt die Validierung fehl. Wenn sie zusammen mit setMax() verwendet wird, muss das Minimum ein Datum sein, das dasselbe oder früher als das Maximum ist.
dateField.setMin(LocalDate.of(2023, 1, 1)); // Minimal erlaubt: 1. Januar 2023
Der Max-Wert
Die Methode setMax() definiert das späteste Datum, das die Komponente akzeptiert. Wenn das eingegebene Datum später als das angegebene Maximum ist, ist die Eingabe ungültig. Wenn beide Werte definiert sind, muss das Maximum ein Datum sein, das dasselbe oder später als das Minimum ist.
dateField.setMax(LocalDate.of(2023, 12, 31)); // Maximal erlaubt: 31. Dezember 2023
Statische Hilfsmittel
Die DateField-Klasse bietet auch die folgenden statischen Hilfsmethoden:
-
fromDate(String dateAsString): Konvertiert einen Datumsstring im Formatyyyy-MM-ddin einLocalDate-Objekt, das dann mit diesem Feld oder anderswo verwendet werden kann. -
toDate(LocalDate date): Konvertiert einLocalDate-Objekt in einen Datumsstring im Formatyyyy-MM-dd. -
isValidDate(String dateAsString): Überprüft, ob der angegebene String ein gültiges Datum im Formatyyyy-MM-ddist.
Best Practices
Um eine optimale Benutzererfahrung bei der Verwendung der DateField-Komponente sicherzustellen, beachten Sie die folgenden Best Practices:
-
Barrierefreiheit: Nutzen Sie geeignete Beschriftungen, um sicherzustellen, dass Benutzer mit assistiven Technologien leicht auf die Datumsfelder in Ihrer App zugreifen und diese verwenden können.
-
Automatische Vervollständigung des aktuellen Datums: Wenn es für den Anwendungsfall Ihrer App geeignet ist, füllen Sie das Datumsfeld automatisch mit dem aktuellen Datum aus.