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 :

Gérer les dates en Java


Sujet :

Collection et Stream Java

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 285
    Points : 54
    Points
    54
    Par défaut Gérer les dates en Java
    bonjour, je suis débutante en java , je souhaite ajouter une personne ,Si le nom de la personne existe je dois ajouter une boite de dialogue pour notifier l’utilisateur que cette personne existe. Les champs doivent être vidés après chaque ajout.
    je travaille avec les arrayLists , voilà le code de ma classe class_personne :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    public class class_personne {
       private String Nom;
       private String Prenom;
       private String Adresse ; 
       private Date DateNaissance ;
     
        public class_personne(String Nom, String Prenom, String Adresse, Date DateNaissance) {
            this.Nom = Nom;
            this.Prenom = Prenom;
            this.Adresse = Adresse;
            this.DateNaissance = DateNaissance;
        }
     
        public String getNom() {
            return Nom;
        }
     
        public void setNom(String Nom) {
            this.Nom = Nom;
        }
     
        public String getPrenom() {
            return Prenom;
        }
     
        public void setPrenom(String Prenom) {
            this.Prenom = Prenom;
        }
     
        public String getAdresse() {
            return Adresse;
        }
     
        public void setAdresse(String Adresse) {
            this.Adresse = Adresse;
        }
     
        public Date getDateNaissance() {
            return DateNaissance;
        }
     
        public void setDateNaissance(Date DateNaissance) {
            this.DateNaissance = DateNaissance;
        }
     
       public int getAge()
       { 
           Date d1 = new Date();  
    //        long a= d1.getTime()-this.DateNaissance.getTime();
            //int b=(int)a/(1000*60*60*24*30*12);
    //            return b;
          int c= d1.getYear()-DateNaissance.getYear();
          return c ;
       }
    }
    Et le code de ma classe Stockage qui contient la liste des personnes :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    public class Stockage {
       public static ArrayList <class_personne> lp;
     
     
        static boolean exist(String n)
        {
           boolean t=false;
           for (int i=0;i<lp.size();i++){
               if (lp.get(i).getNom().equals(n)){
                 t=true;  
               }
           }
           return t;
        }
        static void ajouter(class_personne p)
        {
            lp.add(p);
        }
        static void supprimer(String n)
        {
            for(int i=0 ; i <lp.size() ; i++)
            {
                if(lp.get(i).getNom() == n)
                {
                    lp.remove(i);
                }
            }
        }
        static void rechercher(String s)
        {
            for( int i = 0 ; i< lp.size() ; i++)
            {
    //          if(lp.get(i).getNom().equals(s))
                if(lp.get(i).getNom().contains(s))
     
                {
                    for(class_personne element : lp)
                    {
                        System.out.println(element);
                    }
                }
            }
            //------------------------------------
            Iterator i = lp.iterator();
            while(i.hasNext())
            {
                System.out.println(i.next());
            }
        }
        static void modifier(String nom, class_personne pers)
        {
            for (int i = 0 ; i<lp.size(); i++)
            {
                if(lp.get(i).getNom().equals(nom))
                {
                    lp.get(i).setNom(pers.getNom()); 
                    lp.get(i).setPrenom(pers.getPrenom());
                    lp.get(i).setAdresse(pers.getAdresse());
                    lp.get(i).setDateNaissance(pers.getDateNaissance()); 
                }
     
            }
        }
    }

    et enfin le code d'ajout (contient des erreurs ) qui va ajouter ce que j'ai tapé dans les champs (jtextfields) dans mon ArrayList , je ne sais pas comment gérer les Date , déjà j'ai un champs de type Date dans les propriétés de ma classe class_Personne que je souhaite récupérer son contenu depuis le jTextfiels (jDN) et l'ajouter à mon ArrayList :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
       private void bntAjoutActionPerformed(java.awt.event.ActionEvent evt) {                                         
    //      ArrayList <class_personne> ar;
              
                 
            JOptionPane j = new JOptionPane();
            if (jNom.getText().isEmpty() || jPrenom.getText().isEmpty()  || jAdress.getText().isEmpty()  ||jDN.getText().isEmpty())
           {
               j.showMessageDialog(null," error remplissez les champs  !!" , "error", JOptionPane.ERROR_MESSAGE);
           }
           else
           {
              
                      String getn= jNom.getText(); 
                     if (Stockage.exist(getn))
                     {
                        //-------------------------------------------
                        String n= jNom.getText();      
                        String p=  jPrenom.getText();
                        String ad=  jAdress.getText(); 
                         DateFormat t = new SimpleDateFormat("dd/MM/yy");
                          String datu= jDN.getText();
                          Date dateParse=null;
                        try {
                            dateParse = t.parse(datu);
                        } catch (ParseException ex) {
                //            Logger.getLogger(GestionPersonne.class.getName()).log(Level.SEVERE, null, ex);
                        }
                      //-------------------------------------------
                        class_personne c=new class_personne(n, p, ad, dateParse);
                        Stockage.ajouter(c);
                         j.showMessageDialog(null ,n +" "+p+" "+ad+ " "+ dateParse ,"info", JOptionPane.INFORMATION_MESSAGE);
                     }
                
               jNom.getText().equals("");      
               jPrenom.getText().equals("");
               jAdress.getText().equals("");
               jDN.getText().equals(""); 
           }
        }
    de l'aide SVP ...Merci

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 797
    Points
    4 797
    Par défaut
    Bonjour

    Il nous faut le message d'erreur avec le n° de ligne.
    j'ai vu que tu as mis en commentaire le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Logger.getLogger(GestionPersonne.class.getName()).log(Level.SEVERE, null, ex);
    Du coup, on ne sait pas où est le problème.
    Pour faire simple, mets ex.printStackTrace(); dans le "catch" pour qu'on puisse savoir d'où vient l'erreur.

    Après, quand on aura réglé le problème, il y aura plusieurs choses à voir en fonction de ton niveau en java (mais on n'en est pas encore là) :
    - peut-être utiliser un champ de saisie qui vérifie la date :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JFormattedTextField jDN = new JFormattedTextField(new SimpleDateFormat("dd/MM/yy"))
    - Le tableau statique dans la classe Stockage ce n'est pas génial. On préfère utiliser un singleton.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  3. #3
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 285
    Points : 54
    Points
    54
    Par défaut
    bonjour , voilà l'erreur :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    run:
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at tp1_eve.Stockage.exist(Stockage.java:22)
    	at GestionPersonne.bntAjoutActionPerformed(GestionPersonne.java:174)
    	at GestionPersonne.access$100(GestionPersonne.java:23)
    	at GestionPersonne$2.actionPerformed(GestionPersonne.java:85)
    	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    	at java.awt.Component.processMouseEvent(Component.java:6525)
    	at javax.swing.JComponent.processMouseEvent(JComponent.java:3322)
    	at java.awt.Component.processEvent(Component.java:6290)
    	at java.awt.Container.processEvent(Container.java:2234)
    	at java.awt.Component.dispatchEventImpl(Component.java:4881)
    	at java.awt.Container.dispatchEventImpl(Container.java:2292)
    	at java.awt.Component.dispatchEvent(Component.java:4703)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
    	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
    	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
    	at java.awt.Container.dispatchEventImpl(Container.java:2278)
    	at java.awt.Window.dispatchEventImpl(Window.java:2739)
    	at java.awt.Component.dispatchEvent(Component.java:4703)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:751)
    	at java.awt.EventQueue.access$500(EventQueue.java:97)
    	at java.awt.EventQueue$3.run(EventQueue.java:702)
    	at java.awt.EventQueue$3.run(EventQueue.java:696)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
    	at java.awt.EventQueue$4.run(EventQueue.java:724)
    	at java.awt.EventQueue$4.run(EventQueue.java:722)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:721)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

    merci

  4. #4
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 797
    Points
    4 797
    Par défaut
    Dans ta classe Stockage, tu déclare ton ArrayList :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static ArrayList <class_personne> lp;
    Mais à aucun endroit tu ne crées (instancies) l'ArrayList en question.
    du coup "lp" est null !!!
    pour instancier dans ton code, tu dois écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static ArrayList <class_personne> lp = new ArrayList<class_personne>();
    Ceci est une solution de dépannage.
    On va déjà essayer de le faire fonctionner et après, il faudra améliorer tout cela.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  5. #5
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 285
    Points : 54
    Points
    54
    Par défaut
    maintenant je clique "ajouter" mais rien ne se passe ..

  6. #6
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 797
    Points
    4 797
    Par défaut
    Oui, mais dans le code de bntAjoutActionPerformed,
    tu as écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (Stockage.exist(getn))
    Donc il ne va essayer d'ajouter une class_personne à ton tableau que si elle est déjà présente dans le tableau.
    Autant dire que cela ne risque pas d'arriver !
    Essaye avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!Stockage.exist(getn))
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  7. #7
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 285
    Points : 54
    Points
    54
    Par défaut
    bonjour , mon code s’exécute bien mais le format de la date est différent de "dd/mm/yy" , c'est plutôt : " Thu Feb 02 00:00:00: CET 2"

    comment pourrais utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     JFormattedTextField jDN = new JFormattedTextField(new SimpleDateFormat("dd/MM/yy"));

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
      JOptionPane j = new JOptionPane();
            if (jNom.getText().isEmpty() || jPrenom.getText().isEmpty()  || jAdress.getText().isEmpty()  ||jDN.getText().isEmpty())
           {
               j.showMessageDialog(null," error remplissez les champs  !!" , "error", JOptionPane.ERROR_MESSAGE);
           }
           else
           {
     
                      String getn= jNom.getText(); 
                     if (!Stockage.exist(getn))
                     {
                        //-------------------------------------------
                        String n= jNom.getText();      
                        String p=  jPrenom.getText();
                        String ad=  jAdress.getText(); 
                         DateFormat t = new SimpleDateFormat("dd/MM/yy");
                         //JFormattedTextField jDN = new JFormattedTextField(new SimpleDateFormat("dd/MM/yy"));
                          String datu= jDN.getText();
                          Date dateParse=null;
                        try {
                            dateParse = t.parse(datu);
                        } catch (ParseException ex) {
                //            Logger.getLogger(GestionPersonne.class.getName()).log(Level.SEVERE, null, ex);
                        ex.printStackTrace();
                        }
                      //-------------------------------------------
                        class_personne c=new class_personne(n, p, ad, dateParse);
                        Stockage.ajouter(c);
                         j.showMessageDialog(null ,n +" "+p+" "+ad+ " "+ dateParse ,"info", JOptionPane.INFORMATION_MESSAGE);
     
                      jNom.getText().equals("");      
               jPrenom.getText().equals("");
               jAdress.getText().equals("");
               jDN.getText().equals(""); 
                     }
                     else  
                     {
                         Stockage.exist(getn);
                          j.showMessageDialog(null ," existe deja" ,"info", JOptionPane.INFORMATION_MESSAGE);
                     }
     
           }
        }

  8. #8
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 797
    Points
    4 797
    Par défaut
    En remplaçant dans ton écran (un JFrame je suppose) le code de création de jDN :
    JTextField jDN = new JTextField ();
    JFormattedTextField jDN = new JFormattedTextField(new SimpleDateFormat("dd/MM/yy"));

    après quoi, tu peux récupérer directement la date par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Date maDate =((Date) jDN.getValue());
    (note le getValue à la place du getText)
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  9. #9
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 285
    Points : 54
    Points
    54
    Par défaut
    ça m'affiche null pour ma date :


    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
      JOptionPane j = new JOptionPane();
            if (jNom.getText().isEmpty() || jPrenom.getText().isEmpty()  || jAdress.getText().isEmpty()  ||jDN.getText().isEmpty())
           {
               j.showMessageDialog(null," error remplissez les champs  !!" , "error", JOptionPane.ERROR_MESSAGE);
           }
           else
           {
     
                      String getn= jNom.getText(); 
                     if (!Stockage.exist(getn))
                     {
                        //-------------------------------------------
                        String n= jNom.getText();      
                        String p=  jPrenom.getText();
                        String ad=  jAdress.getText(); 
                         DateFormat t = new SimpleDateFormat("dd/MM/yy");
                         JFormattedTextField jDN = new JFormattedTextField(new SimpleDateFormat("dd/MM/yy"));
                         Date dateParse =(Date) jDN.getValue(); 
                      //-------------------------------------------
                        class_personne c=new class_personne(n, p, ad, dateParse);
                        Stockage.ajouter(c); 
                         j.showMessageDialog(null ,n +" "+p+" "+ad+ " "+ dateParse ,"info", JOptionPane.INFORMATION_MESSAGE);
     
                        jNom.getText().equals("");      
                        jPrenom.getText().equals("");
                        jAdress.getText().equals("");
                        jDN.getText().equals(""); 
                     }
                     else  
                     {
                         Stockage.exist(getn);
                          j.showMessageDialog(null ," existe deja" ,"info", JOptionPane.INFORMATION_MESSAGE);
                     }
     
           }

  10. #10
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 797
    Points
    4 797
    Par défaut
    Le JFormattedTextField est un champ de saisie !!!!

    à mettre dans ton JFrame à l'endroit où on doit saisir la date
    là où on saisi les noms et prénoms ....
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  11. #11
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 285
    Points : 54
    Points
    54
    Par défaut
    oui je sais c'est ce que j'ai fait mais ça me donne quand même null !!

  12. #12
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 797
    Points
    4 797
    Par défaut
    Bon, il faut poster le code du JFrame.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  13. #13
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 285
    Points : 54
    Points
    54
    Par défaut
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    private void initComponents() {
     
            jLabel1 = new javax.swing.JLabel();
            jLabel2 = new javax.swing.JLabel();
            jLabel3 = new javax.swing.JLabel();
            jLabel4 = new javax.swing.JLabel();
            jNom = new javax.swing.JTextField();
            jPrenom = new javax.swing.JTextField();
            jAdress = new javax.swing.JTextField();
            btnModif = new javax.swing.JButton();
            btnconsult = new javax.swing.JButton();
            btnSupp = new javax.swing.JButton();
            btnAnnuler = new javax.swing.JButton();
            btnRech = new javax.swing.JButton();
            bntAjout = new javax.swing.JButton();
            jDN = new javax.swing.JFormattedTextField();
     
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
     
            jLabel1.setText("Nom :");
     
            jLabel2.setText("Prénom : ");
     
            jLabel3.setText("Adresse :");
     
            jLabel4.setText("Date naissance :");
     
            btnModif.setText("modifier");
     
            btnconsult.setText("Consulter");
     
            btnSupp.setText("supprimer");
     
            btnAnnuler.setText("Annuler");
     
            btnRech.setText("Rechercher");
            btnRech.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    btnRechActionPerformed(evt);
                }
            });
     
            bntAjout.setText("Ajouter");
            bntAjout.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    bntAjoutActionPerformed(evt);
                }
            });
     
            javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGap(28, 28, 28)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(jLabel1)
                        .addComponent(jLabel4)
                        .addComponent(jLabel3)
                        .addComponent(jLabel2))
                    .addGap(43, 43, 43)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                        .addComponent(jPrenom, javax.swing.GroupLayout.DEFAULT_SIZE, 183, Short.MAX_VALUE)
                        .addComponent(jAdress, javax.swing.GroupLayout.DEFAULT_SIZE, 183, Short.MAX_VALUE)
                        .addComponent(jNom, javax.swing.GroupLayout.DEFAULT_SIZE, 183, Short.MAX_VALUE)
                        .addComponent(jDN))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 66, Short.MAX_VALUE)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(btnAnnuler, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(btnRech, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addComponent(btnModif, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(bntAjout, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(btnSupp, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addComponent(btnconsult, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGap(24, 24, 24))
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGap(25, 25, 25)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(bntAjout)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel1)
                            .addComponent(jNom, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGap(35, 35, 35)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(layout.createSequentialGroup()
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jLabel2)
                                .addComponent(jPrenom, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jLabel3)
                                .addComponent(jAdress, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGap(141, 141, 141))
                        .addGroup(layout.createSequentialGroup()
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(layout.createSequentialGroup()
                                    .addGap(123, 123, 123)
                                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                        .addComponent(jLabel4)
                                        .addComponent(jDN, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                .addGroup(layout.createSequentialGroup()
                                    .addComponent(btnModif)
                                    .addGap(18, 18, 18)
                                    .addComponent(btnSupp)
                                    .addGap(28, 28, 28)
                                    .addComponent(btnconsult)
                                    .addGap(36, 36, 36)
                                    .addComponent(btnRech)))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 18, Short.MAX_VALUE)
                            .addComponent(btnAnnuler)
                            .addGap(20, 20, 20))))
            );
     
            pack();
        }// </editor-fold>

    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
    // Variables declaration - do not modify                     
        private javax.swing.JButton bntAjout;
        private javax.swing.JButton btnAnnuler;
        private javax.swing.JButton btnModif;
        private javax.swing.JButton btnRech;
        private javax.swing.JButton btnSupp;
        private javax.swing.JButton btnconsult;
        private javax.swing.JTextField jAdress;
        private javax.swing.JFormattedTextField jDN;
        private javax.swing.JLabel jLabel1;
        private javax.swing.JLabel jLabel2;
        private javax.swing.JLabel jLabel3;
        private javax.swing.JLabel jLabel4;
        private javax.swing.JTextField jNom;
        private javax.swing.JTextField jPrenom;

  14. #14
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 797
    Points
    4 797
    Par défaut
    Bon, à l'évidence, tu te sers de NetBeans pour faire ton JFrame.

    1) tu supprimes l'ancien JTextField jDN

    2) depuis la palette Swing Controls (à droite en haut) tu fais glisser un JFormattedTextField que tu nomes jDN

    3) tu vas dans les propriétés de jDN (à droite en bas)

    4) tu as 4 onglets : Properties, Binding, Events, Code

    5) tu cliques sur Code

    6) tu ouvres "Custum creation code" et tu y mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new JFormattedTextField(new SimpleDateFormat("dd/MM/yy"))
    Explications :

    • JFormattedTextField est un JTextField qui sert à faire de la saisie formatée (date, pourcentage, monétaire, etc ...)
      on récupère ensuite la valeur avec getValue (et non pas getText)
    • d'abord on demande à NetBeans de placer un champ qui sera formaté (JFormattedTextField)
      à ce stade, le champ ne sait pas encore quel type de donnée on veut utiliser
    • on va dans Custum creation code pour indiquer à NetBeans comment il doit créer le JFormattedTextField


    Dans ton code d'ajout de ta classe Stockage, tu dois utiliser (Date) jDN.getValue() pour avoir un vrai objet date.
    Tu peux virer le parser car le contrôle de "bonne date" a déjà été fait par JFormattedTextField.

    ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
             ...
                        String n= jNom.getText();      
                        String p=  jPrenom.getText();
                        String ad=  jAdress.getText(); 
                        Date laDate = (Date) jDN.getValue();
                        class_personne c=new class_personne(n, p, ad, laDate );
                        Stockage.ajouter(c);
                        ...
    C'est tout de même plus simple ...
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  15. #15
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 285
    Points : 54
    Points
    54
    Par défaut
    bonjour ,c'est toujours le format : " Thu Feb 02 00:00:00: CET 2"

  16. #16
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 797
    Points
    4 797
    Par défaut
    Et qu'est-ce qui t’empêche de l'utiliser ?

    Car ... on est bien d'accord que tu as regardé dans la documentation de SimpleDateFormat
    et que tu as fais des essais avec les codes format que tu y as trouvé avant de poster ???
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

Discussions similaires

  1. gérer les date en java
    Par sampaiX dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 09/05/2010, 17h24
  2. Réponses: 13
    Dernier message: 07/02/2007, 12h10
  3. [Dates] Comment gérer les dates sur un blog ?
    Par psychoBob dans le forum Langage
    Réponses: 10
    Dernier message: 14/06/2006, 14h09
  4. Gérer les dates avec SQL Server 2000
    Par saby dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/01/2006, 18h06
  5. [Modèle Relationnel] gérer les dates
    Par allowen dans le forum Schéma
    Réponses: 10
    Dernier message: 13/10/2004, 19h43

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