ich versuche, Benutzer zu beschränken, nur das Datum nach dem heutigen Tag, oder wählen Sie ein Datum nach der anderen Date
ich auf JCalendar API etwas sehen zu wählen, die ihr helfen konnten, aber ich didn Finde nichts .. wie kann ich das machen?Wie nur Datum nach dem Datum von heute zeigen, in JCalendar
1
A
Antwort
7
Ich glaube nicht, dass es eine direkte Möglichkeit auf der Komponente gibt, dies zu tun. Eine Möglichkeit, die ich kenne, ist die Verwendung der setSelectableDateRange(Date from,Date to)
- Wenn Sie das Von Datum auf das aktuelle Datum setzen, werden alle vorherigen Tag Zellen, Jahr/Monat Dropdowns deaktiviert.
Beispiel:
JCalendar calendar = new JCalendar();
calendar.setSelectableDateRange(new Date(),new SimpleDateFormat("MM-DD-YYYY").parse("05-05-2015"));
PropertyChangeListener calendarChangeListener = new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
Date selectedDate = ((JCalendar)evt.getSource()).getDate();
}
};
calendar.addPropertyChangeListener("calendar",calendarChangeListener);
Diese Auswahl an einem Zeitpunkt vor dem aktuellen Datum deaktivieren und nach 05/05/2015
Beachten Sie, dass diese API in ihren javadoc nicht dokumentiert ist. Aber das ist immer noch ein öffentlicher Setter, der wie erwartet funktioniert.
EDIT, da Sie wissen wollen, wie JDateChooser
in ähnlichem Kontext
JDateChooser chooser = new JDateChooser();
chooser.getJCalendar().setSelectableDateRange(new Date(),new SimpleDateFormat("MM-DD-YYYY").parse("05-05-2015"));
chooser.getJCalendar().addPropertyChangeListener("calendar",...);
Min, Max und Range Methoden in dem 'IDateEditor' Schnittstelle spezifiziert sind. – trashgod
gibt es zwei Bibliotheken jcalendar. In einem Fall ist die Methode setSelectableDataRange definiert, aber nicht der addDateListener. In der anderen ist definiert, AddDateListener, aber nicht setSelectableDataRange .. Wie kann ich es lösen? Ich brauche beide Methoden. andernfalls, wenn ich die Bibliothek verwende, in der setSelectableDateRange definiert ist, wie kann ich Datum vom Benutzer angeklickt bekommen, um dieses Datum zu einem jtextfield hinzuzufügen? – JackTurky
@ user1190704 - Hm! Das ist schwierig. Bitte konsultieren Sie den Code in der bearbeiteten Antwort. –