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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    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
    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 713
    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 713
    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 éclairé
    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
    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 713
    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 713
    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 éclairé
    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
    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 713
    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 713
    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/

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