Wie zu erkennen, wenn der Benutzer geändert JDateChooser Datum und nicht irgendetwas anderes einstellen von Datum-Eigenschaft?
Benutze ich JDateChooser Bearbeiten Daten in meinem Formular.
Kurze version: ich muss unterscheiden zwischen Benutzer Bearbeiten und programmatischen Eigenschaft ändern auf einem JDateChooser.
Abhilfe: I ' ve found a geschützt JDateChooser Eigenschaft namens dateSelected das ist genau das, was ich brauche (afaics es gibt keine getter -) also wahrscheinlich hätte ich, um meine eigenen erweitert JDateChooser Klasse und machen einen getter für diese Eigenschaft. Das problem hier ist, dass ich will diese custom-version ziehbar aus der Netbeans-Palette und meine custom JDateChooser nicht.
Lange version:
Zuerst bekomme ich ein Datum aus meiner Datenbank und ich benutze den JDateChooser ist setDate () - Methode, um das Datum in der GUI. Ich will "Datenbank Bearbeiten" - Datum, wenn der Benutzer wählt einen neuen Termin mit der Auswahl. Zu tun, dass ich mir für ein PropertyChange-Ereignis auf den JDateChooser-Objekt (für die Suche das "Datum" ändern). Nach settig das neue Datum in der Datenbank, ich möchte, um die Daten zu aktualisieren (ich bekomme den ganzen Datensatz aus der Datenbank) und ich das Datum aus der Datenbank (wenn es keine Fehler, es wird legen Sie zurück auf das, was ist in der Datenbank im moment).
Das problem ist, dass wenn ich das Datum aus der Datenbank, die das gleiche Ereignis ausgelöst wird, ob ein Benutzer änderungen Datum und dann meine "refresh" - Mechanismus aktualisiert die JDateChooser Feld und ich bekomme unendliche Schleife.
Meine vorhandenen (vereinfacht) code (netbeans):
private void dataStartuChooserPropertyChange(java.beans.PropertyChangeEvent evt) {
if ("date".equals(evt.getPropertyName())) {
JDateChooser wybieraczDat = (JDateChooser) evt.getSource();
updateDatabaseField(wybieraczDat.getDate());
}
}
ICH DANKE IHNEN SEHR!! Ich verbrachte Stunden mit googeln zu versuchen, um es für die Arbeit mit action listener. Ihr code wird gearbeitet. NOCHMALS VIELEN DANK!!
InformationsquelleAutor user1713059 | 2012-10-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werde ich Antworten, um mich hier, weil ich fould eine verrückte Art und Weise, dies zu tun (die möglicherweise wertlos sein können, aber ist für meine Bedürfnisse in Ordnung). Ich will nicht ein komplettes lauffähiges Beispiel, weil ich nicht die Zeit habe. Noch some1 profitieren können.
Um zu prüfen, ob das Datum wurde gewählt, um Benutzer oder eine Gruppe programmgesteuert in einem
PropertyChangeEvent
einer JDateChooser ich eineJDateChooser
's eigenes Feld namensdateSelected
. Nachdem ich tun, was nötig ist (änderung der Datenbank) ich habe diese Feld zurückfalse
weil sonst würde es bleibentrue
auch wenn das Datum geändert wurde programmatisch wieder. Beispiel (nicht optimierten, hässlich, nur um zu zeigen, was ich getan habe) folgenden code ein.InformationsquelleAutor user1713059
Ich sehe diese Frage ist lange beantwortet, aber ich möchte meinen Ansatz für die Forschung zu.
Mein Ansatz ist immer das JTextField innerhalb der Datumsauswahl, dann erhalten Sie das Dokument, Einhaken, eine Veranstaltung, zu prüfen, ob das Datum geändert wurden und gültig ist und rufen dann den Benutzer angegebenen lambda-Ausdruck.
Schnittstelle für lambda:
Einer Funktion zum registrieren der Veranstaltung.
Und eine Lambda-Stil-Registrierung für die Veranstaltung.
InformationsquelleAutor Felype
iam mit ActionListener
InformationsquelleAutor Dimas Naresh