Comment détecter si l'utilisateur a changé JDateChooser date et rien d'autre réglage de la date de la propriété?

- Je utiliser JDateChooser de modifier les dates dans mon formulaire.

Version courte: j'ai besoin de distinguer entre date de l'utilisateur modifier et programmatiques changement de propriété sur un JDateChooser.

Solution de contournement: j'ai trouvé un protégé JDateChooser propriété nommée dateSelected qui est exactement ce dont j'ai besoin (afaics il n'y a pas de getter) donc, probablement que j'aurais du faire mes propre prolongée JDateChooser classe et de faire un getter pour cette propriété. Le problème ici est que je veux avoir cette version personnalisée pour être déplaçable à partir de Netbeans Palette et mes personnalisé JDateChooser ne sera pas.

Version longue:
J'ai d'abord obtenir une date dans ma base de données et j'utilise le JDateChooser de setDate() la méthode pour fixer la date de l'interface graphique. Je veux modifier la base de données de la date lorsque l'utilisateur choisit une nouvelle date avec le sélecteur. Pour le faire j'écoute pour un événement PropertyChange sur le JDateChooser objet (à la recherche du "" date de modification). Après settig la nouvelle date dans la base de données, je veux actualiser les données (j'ai l'ensemble de l'enregistrement de la base de données), et j'ai mis la date à partir de la base de données (s'il y a une erreur, il est de retour à tout ce qui est dans la base de données pour le moment).

Le problème est que lorsque j'ai mis la date à partir de la base de données, le même événement est déclenché lorsque l'utilisateur change de date et puis mon "actualiser" mécanisme de mises à jour de la JDateChooser domaine et j'ai une boucle infinie.

Mon (simplifié) code (netbeans):

private void dataStartuChooserPropertyChange(java.beans.PropertyChangeEvent evt) {
    if ("date".equals(evt.getPropertyName())) {
        JDateChooser wybieraczDat = (JDateChooser) evt.getSource();
        updateDatabaseField(wybieraczDat.getDate());
    }
}
  • Voir aussi ce Q&A.
  • MERCI BEAUCOUP!! J'ai passé des heures sur google en essayant de le faire fonctionner avec l'action de l'auditeur. Votre code ne fonctionnait. MERCI ENCORE!!
InformationsquelleAutor user1713059 | 2012-10-01