IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

Problème pour ajouter un nombre de mois à la date en cours


Sujet :

Collection et Stream Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Points : 21
    Points
    21
    Par défaut Problème pour ajouter un nombre de mois à la date en cours
    Bonjour Je m'appelle Serge je suis débutant; je souhaite modifier le contenu du JTextflied2(txtdatefin) à partir du JTextfield1(txtdatedeb) .
    c'est à dire ajouter 2 mois à txtdatefin à partir de la date saisie dans txtdatedeb.
    J'ai écrit le code ci-dessous mais ça marche pas
    J'ai besoin d'aide svp!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    public void insertUpdate(DocumentEvent e) {
     
                 Calendar cal=Calendar.getInstance();
                 SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yyyy");
     
                try{  
                         java.util.Date today = new java.util.Date();
                         txtdatedeb.setText(sdf.format(today));
     
                        cal.add(Calendar.MONTH,2);
     
                         java.util.Date date = cal.getTime();
     
                       txtdatefin.setText(sdf.format(date));
                             }
                catch(Exception ex){
            ex.printStackTrace();
     
                }

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    Si tu utilises jdk 1.8, tu as la méthode "plusMonths" de la classe "LocalDate".

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    +1, les nouvelles APIs de java 8 sont plus pratiques à manipuler
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern(String pattern)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      String text = date.toString(formatter);
      LocalDate date = LocalDate.parse(texte, formatter);
      date.plusMonths(2);
      String texte2 = date.format(formatter);
    Pour revenir à ton code, tout ce qu'il fait pour le moment, c'est ajouter dans txtdatedeb la date d'aujourd'hui et dans txtdatefin la date dans 2 mois. Mais en aucun cas, tu n'a lié les deux paramètres entre eux. Si tu veux que l'un change avec l'autre, tu dois ajouter cette logique quelque part. Pour savoir où ajouter cette logique, il faut commencer par te pose la question de savoir quand tu veux ce changement? Dès qu'un caractère change dans un des listener? Dès que le textfield perd le focus? Quand on appuie sur un bouton sauver?

  4. #4
    Membre à l'essai
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Points : 21
    Points
    21
    Par défaut
    Je souhaite avoir la date dans 2 mois dès que le textfield(txtdatedeb) perd le focus.
    Quelle modification dois-je faire dans mon code?
    Merci pour vos conseils.

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Dans tous les composants swing, et donc dans le textField, tu peux enregistrer un FocusListener via addFocusListener qui sera notifié quand le composant reçois ou perd le focus: http://docs.oracle.com/javase/tutori...slistener.html

    Tu n'a plus qu'à récupérer la date du textfield, dans ce listener, y ajouter 2 mois et mettre à jour l'autre textfield.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Points : 21
    Points
    21
    Par défaut
    j'ai installé jdk 1.8 . Sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String text = date.toString(formatter);
    l'expression "date" (cannot find symbol symbol:variable date)
    Aidez à corriger l'erreur svp!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    textdatedeb.addFocusListener(new FocusListener() {
    public void focusGained(FocusEvent e) {
    
    }
    public void focusLost(FocusEvent e) {
    
    String text = date.toString(formatter);
    LocalDate date = LocalDate.parse(texte, formatter);
    date.plusMonths(2);
    txtdatefin.setText(date.format(formatter));
    
          }
          }
        });

  7. #7
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Bah tu essais juste d'utiliser une variable que tu n'as pas encore créé..

  8. #8
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 547
    Points : 21 602
    Points
    21 602
    Par défaut
    Et accessoirement, l'idée est d'initialiser une variable String text. Donc dans laquelle on va mettre un texte. Vraisemblablement la représentation String de la date qui a été saisie par l'utilisateur.

    L'idée est de mettre dedans ce que contient le champ de saisie auquel on est en train de réagir. Pas l'exemple fantoche qui avait été donné au début quand on savait pas trop d'où le sortir.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre à l'essai
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Points : 21
    Points
    21
    Par défaut
    ça marche maintenant.
    Voici la modification du code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    textdatedeb.addFocusListener(new FocusListener() {
    public void focusGained(FocusEvent e) {
     
    }
    public void focusLost(FocusEvent e) {
     
    String text = txtdatedeb.getText();
    LocalDate date = LocalDate.parse(texte, formatter);
    LocalDate plusMonths=date.plusMonths(2);
    txtdatefin.setText(plusMonths.format(formatter));
     
          }
          }
        });
    Merci pour vos conseils.
    Vous êtes des chefs.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ajouter un nombre de mois à une date
    Par PAYASS59 dans le forum Webi
    Réponses: 11
    Dernier message: 18/03/2010, 16h33
  2. ajouter un nombre de mois à une date
    Par mèmaton dans le forum WinDev
    Réponses: 7
    Dernier message: 22/04/2009, 12h30
  3. Réponses: 4
    Dernier message: 11/06/2006, 20h04
  4. Réponses: 1
    Dernier message: 21/02/2006, 16h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo