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 :

NullPointerException à l'aide


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 36
    Par défaut NullPointerException à l'aide
    Salut à tous, j'ai un probleme tout bete.
    Je souhaite tout simplement voir afficher une demande de confirmation de fermeture lorsque l'utilisateur souhaite quitter mon application. (voulez vous quittez ? oui / non ) ...

    Voici comment je m'y suis pris :

    ma classe AppliFrame contenant la frame :

    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
    package IHM;
     
    import METIER.ListenerQuitter;
     
    import java.awt.*;
     
    import javax.swing.*;
     
     
    public class AppliFrame extends JFrame
    {
    	private MenuBar menubar;
    	private PanelRequete requete;
    	private JScrollPane pResult;
     
    	public AppliFrame()
    	{
    		super("Requeteur");
    		init();
    	}
     
    	public void init()
    	{
    		setBounds(400,300,600,400);	
    		menubar = new MenuBar(this);
    		setJMenuBar(menubar);
     
    		Container cont = getContentPane();
    		cont.setLayout(new BorderLayout());
     
    		requete = new PanelRequete(this);
    		pResult = new JScrollPane() ;
     
    		cont.add(requete , BorderLayout.NORTH);
    		cont.add(pResult , BorderLayout.CENTER);
     
    		setVisible(true);
    	}
     
    	//CONFIRMATION FERMETURE 
     
    	public void sortiePrudente() 
    	{
    		if (JOptionPane.showConfirmDialog(this, "Voulez-vous vraiment quitter ?", "Question", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION)
    		System.exit(0);
    	}
    }
    ma classe MenuBar pour la barre de menu :

    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
    package IHM;
    import METIER.*;
    import javax.swing.*;
    import java.awt.event.InputEvent;
     
    public class MenuBar extends JMenuBar 
    {
    	private JMenu fichier;
    	private JMenuItem connexion;
    	private JMenuItem configure;
    	private JMenuItem about;
    	private JMenuItem quit;
    	private JSeparator separator;
     
    	public MenuBar (AppliFrame appliframe)
    		{
    		super();
     
    		//MENU FICHIER
     
    		fichier = new JMenu("Fichier");
     
    		connexion = new JMenuItem("Connexion");
    		fichier.add(connexion);
     
    		configure = new JMenuItem("Configurer");
    		fichier.add(configure);
    		separator = new JSeparator();
    		about = new JMenuItem("About...");
    		fichier.add(about);
    		separator = new JSeparator();
    		quit = new JMenuItem("Quitter");
    		fichier.add(quit);
    		quit.addActionListener(new ListenerQuitter());
     
     
     
    		//AJOUT DU MENU
    		add(fichier);
    	}
     
    }

    et enfin la classe ListenerQuitter :

    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
    package METIER;
    import IHM.*;
    import java.awt.event.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    public class ListenerQuitter implements ActionListener
     
    {
    	private AppliFrame appliframe;
     
    	public ListenerQuitter()
    	{
    		super();
    		this.appliframe=appliframe;
    	}
     
     
     
    	public void actionPerformed(ActionEvent e)
    	{
    		appliframe.sortiePrudente();
    	}
     
    }



    et voici mon erreur lorsque je clique sur "quitter" dans mon menu déroulant :

    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
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at METIER.ListenerQuitter.actionPerformed(ListenerQuitter.java:22)
    	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.AbstractButton.doClick(Unknown Source)
    	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
    	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.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.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)

    Merci de votre aide

  2. #2
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    je dit peut etre une betise mais je trouve ca louche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public ListenerQuitter()
    	{
    		super();
    		this.appliframe=appliframe;
    	}
    Tu affecte "appliframe" a lui meme ... donc null car appliframe n'est pas initialisé.
    A mon avis tu as du oublier un parametre a ton constructeur ...

  3. #3
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    appliFrame dans ta classe ListenerQuitter n'est jamais initialisé (et vaut donc "null"). Ce qui provoque logiquement une erreur lors de l'appel à "actionPerformed()"

    EDIT: Grilled!
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 36
    Par défaut
    oui ... en effet c t pas malin

    merci pour votre aide

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 36
    Par défaut
    euh ... excusez moi je suis plutot débutant dans le domaine et je n'arrive pas à trouver de solution.

    Je comprend bien le probleme mais je n'arrive pas à trouver de solution pour appeler la fonction sortiePrudente() contenue dans la classe AppliFrame avec le ListenerQuitter

    Merci de m'aider.

  6. #6
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    a priori quelque chose comme ca :

    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
    public class ListenerQuitter implements ActionListener
     
    {
    	private AppliFrame appliframe;
     
    	public ListenerQuitter(AppliFrame f)
    	{
    		super();
    		this.appliframe=f;
    	}
     
     
     
    	public void actionPerformed(ActionEvent e)
    	{
    		appliframe.sortiePrudente();
    	}
     
    }
    Et bien sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    quit.addActionListener(new ListenerQuitter(this));

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 36
    Par défaut
    et ben ouais ...

    ben ecoute jte remercie pour ton aide ...

    A +

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

Discussions similaires

  1. aide Erreur java.lang.NullPointerException
    Par tare9 dans le forum Développement Web en Java
    Réponses: 43
    Dernier message: 31/05/2010, 17h02
  2. Besoin d'aide java.lang.NullPointerException
    Par youness78 dans le forum Général Java
    Réponses: 8
    Dernier message: 10/11/2009, 16h11
  3. Besoin d'aide sur un NullPointerException
    Par brycebtz dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 28/10/2009, 21h43
  4. Réponses: 4
    Dernier message: 23/12/2008, 08h34
  5. Une petite aide pour les API ?
    Par Yop dans le forum Windows
    Réponses: 2
    Dernier message: 04/04/2002, 21h45

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