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

 Java Discussion :

Message d'erreur nullpointerexception


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Par défaut Message d'erreur nullpointerexception
    Bonjour je réalise un petit programme pour apprendre java mais voila j ai un petit message d'erreur :

    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at exemple8$MyActionListener.actionPerformed(exemple8.java:39)
        at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
        at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
        at java.awt.Component.processMouseEvent(Unknown Source)
        at javax.swing.JComponent.processMouseEvent(Unknown Source)
        at java.awt.Component.processEvent(Unknown Source)
        at java.awt.Container.processEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$200(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue$4.run(Unknown Source)
        at java.awt.EventQueue$4.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
    Et voici mon programme


    Code java : 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
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
     
     
    public class exemple8 
    {
        private int count = 0;
        private JLabel label;
     
        public exemple8() 
        {
            JFrame frame = new JFrame("exemple");
            JButton button = new JButton("clic clic");
     
            button.addActionListener(new MyActionListener());
     
            JLabel label = new JLabel("0");
            JPanel pane = new JPanel();
     
            pane.add(button);
            pane.add(label);
     
            frame.getContentPane().add(pane, BorderLayout.CENTER);
     
            frame.pack();
     
            frame.setVisible(true);
        }
        /* on peut écrire une class à l'intérieur d'une autre, */
        /* utilisée uniquement dans la classe englobante. */
     
        private class MyActionListener implements ActionListener 
        {
            public void actionPerformed(ActionEvent event) 
            {
                count++;
                label.setText(Integer.toString(count));
            }
        }
     
        public static void main(String[] args) 
        {
            new exemple8();
        }
     
    }

    Et apparement l'erreur viendrait de la ligne 39 soit :

    label.setText(Integer.toString(count));

    Vraiment besoins d aide svpp

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    C'est bien, tu sais que l'erreur est en ligne 39, et qu'il s'agit d'un appel de méthode sur une référence d'objet null, donc que ta variable label n'est pas initialisée, donc tu as tout ce qu'il faut pour savoir comment corriger l'erreur (n'oublies que 2 variables de même nom créées dans 2 scopes différents ne sont pas la même variable).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Par défaut
    J ai essayé de declarer la variable count ailleur mais sans resultat j ai vraiment du mal a comprendre loll

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Par défaut
    pareil pour la variable label mais comme je dois l'utiliser dans les deux classe je vois pas comment faire....

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Il n'y a pas besoin de toucher à la variable count.

    Dans ton code, tu as deux variables label : une déclarée dans le scope de la classe exemple8 (variable membre de la classe), et une déclarée créée dans le constructeur de cette classe, et qui est locale au constructeur. Elles ont le même nom, mais ce sont 2 variables différentes : quand tu changes le contenu de l'une, tu ne changes pas le contenu de l'autre.

    Comme tu dois crées le JLabel dans le constructeur de exemple8, mais pouvoir y accéder dans la classe MyActionListener, il faut que la variable qui pointe vers ce JLabel soit visible des deux classes. MyActionListener est une classe interne de exemple8, donc elle a accès à toutes les variables membre de cette classe. Ce qui n'est pas le cas d'une variable déclarée dans un constructeur ou une méthode, qui n'est visible que dans ce constructeur ou cette méthode.

    Donc il suffit que laisse la déclaration dans la classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public class exemple8 
    {
        private int count = 0;
        private JLabel label;
    ...
    Et que tu ne déclares pas de nouvelle variable dans le constructeur et que tu ne fasses que créer l'objet dans le constructeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public exemple8() 
        {
            JFrame frame = new JFrame("exemple");
            JButton button = new JButton("clic clic");
     
            button.addActionListener(new MyActionListener());
     
            label = new JLabel("0");
            JPanel pane = new JPanel();
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Par défaut
    Merci beaucoup sa fonctionne et je comprend mieu.

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

Discussions similaires

  1. L'exécution m'affiche le message d'erreur java.lang.NullPointerException
    Par a.collery dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 30/10/2014, 16h39
  2. Surcharger le message d'erreur après un OnException
    Par Tirlibibi dans le forum XMLRAD
    Réponses: 2
    Dernier message: 24/04/2003, 11h42
  3. Réponses: 4
    Dernier message: 04/03/2003, 01h05
  4. [CR] Message d'erreur
    Par nono1 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 11/09/2002, 14h54
  5. Réponses: 2
    Dernier message: 27/05/2002, 19h46

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