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 :
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
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); } }
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
Partager