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