Bonjour,

Mon code consiste à afficher une barre de menu, avec deux menus : fichier(items : nouveau, ouvrir, fermer) et edit.
Je ne m'intéresse pour l'instant au'aux Items nouveau ouvrir et fermer de façon à ce que mon code affiche certains textes dès que l'un de ces Items est sélectionné..
Pas de soucis avec l'affichage de menus mais aucun de mes textes ne s'affiche..
Mon énoncé exige que le code soit écrit dans une seule classe :
----> Mon code :
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
 
import java.awt.*;
import java.awt.Event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
 
 
 
public class DemoMenuCopy2 extends Frame implements  ActionListener {
 
  String texte;
//creation des composants
	//creation d'une barre de menu
 
	MenuBar mBar=new MenuBar();
 
	//creation d un menu file
	Menu file=new Menu("Fichier");
 
	//Creation des item du menu file
	MenuItem nouveau  		=new MenuItem	("Nouveau");
	MenuItem ouvrir			=new MenuItem	("Ouvrir");
	MenuItem fermer			=new MenuItem	("Fermer");
	MenuItem separerFile 	        =new MenuItem	("-");
	MenuItem quitter		        =new MenuItem	("Quitter");
 
	//creation d un menu edit et ces items
	Menu edit				=new Menu		("Edit");
	MenuItem copier			=new MenuItem	("Copier");
	MenuItem couper			=new MenuItem	("Couper");
	MenuItem coller			=new MenuItem	("Coller");
	MenuItem separerEdit	        =new MenuItem	("-");
 
	//creation du menu special
	Menu special			=new Menu		("Special");
	MenuItem premier		        =new MenuItem	("Premier");
	MenuItem deuxieme		=new MenuItem	("Deuxieme");
	MenuItem troisieme		=new MenuItem	("Troisieme");
 
 
//constructeur
 
	DemoMenuCopy2(String Menuu)
	{
		super(Menuu);
 
		//ajouter la barre de menu
		setMenuBar(mBar);
 
		//ajouter le menu file a la barre de menu ainsi que ses items
		file.add(nouveau);
		file.add(ouvrir);
		file.add(fermer);
		file.add(separerFile); 	
		file.add(quitter);
		mBar.add(file);
		nouveau.addActionListener(this);
		ouvrir.addActionListener(this);
		fermer.addActionListener(this);
 
		//ajouter le menu edit a la barre de menu ainsi que ses items
 
 
		   // ajouts de qlq items 
		edit.add(copier);
		edit.add(couper);
		edit.add(coller); 	
 
		edit.add(separerEdit);
		    // menu emboité special
		special.add(premier);
		special.add(deuxieme);
		special.add(troisieme);
			//l ajouter a edit
		edit.add(special);
		   // ajouter d autres items et ajouter edit a la barre de menu
		edit.add(new CheckboxMenuItem("Debug"));
		edit.add(new CheckboxMenuItem("Testing"));
		mBar.add(edit);
 
	}
 
	public void actionPerformed(ActionEvent ev){
                Object SEV=ev.getSource();
 
		if(SEV==nouveau){
			texte="Créer un nouveau fichier";
 
		}
	         if(SEV==ouvrir){
			texte="Ouverure d'un  fichier";
 
		}
	        if(SEV==fermer){
			texte="Fermeture du fichier";
 
		}
		repaint();
 
	}
 
	public void paint(Graphics g){
 
		g.drawString(texte,150,50);
 
	}
 
	//instanciation, taille de la fenetre, lisibilité et affichage du texte
 
		public static void main(String[] args)
		{
			DemoMenuCopy2 monmenu=new DemoMenuCopy2("Menu");
			monmenu.setSize(600,220);
			monmenu.setVisible(true);
 
		}
 
}
et je reçois ça :
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
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: String is null
	at sun.java2d.SunGraphics2D.drawString(Unknown Source)
	at DemoMenuCopy2.paint(DemoMenuCopy2.java:105)
	at sun.awt.RepaintArea.paintComponent(Unknown Source)
	at sun.awt.RepaintArea.paint(Unknown Source)
	at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
	at sun.awt.windows.WWindowPeer.handleEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(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)
et même quand je sépare le code en deux classes rien ne s'affiche :

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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
 
 
import java.awt.CheckboxMenuItem;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
 
 
public class DemoMenuCopy extends Frame {
 
 
//creation des composants
	//creation d'une barre de menu
 
	MenuBar mBar=new MenuBar();
 
	//creation d un menu file
	Menu file=new Menu("Fichier");
 
	//Creation des item du menu file
	MenuItem nouveau  		=new MenuItem	("Nouveau");
	MenuItem ouvrir			=new MenuItem	("Ouvrir");
	MenuItem fermer			=new MenuItem	("Fermer");
	MenuItem separerFile 	=new MenuItem	("-");
	MenuItem quitter		=new MenuItem	("Quitter");
 
	//creation d un menu edit
	Menu edit				=new Menu		("Edit");
	MenuItem copier			=new MenuItem	("Copier");
	MenuItem couper			=new MenuItem	("Couper");
	MenuItem coller			=new MenuItem	("Coller");
	MenuItem separerEdit	=new MenuItem	("-");
 
	//creation du menu special
	Menu special			=new Menu		("Special");
	MenuItem premier		=new MenuItem	("Premier");
	MenuItem deuxieme		=new MenuItem	("Deuxieme");
	MenuItem troisieme		=new MenuItem	("Troisieme");
 
 
//constructeur
 
	DemoMenuCopy(String Menuu)
	{
		super(Menuu);
 
		//ajouter la barre de menu
		setMenuBar(mBar);
 
		//ajouter le menu file a la barre de menu ainsi que ses items
		file.add(nouveau);
		file.add(ouvrir);
		file.add(fermer);
		file.add(separerFile); 	
		file.add(quitter);
		mBar.add(file);
 
		//ajouter le menu edit a la barre de menu ainsi que ses items
 
 
		   // ajouts de qlq items 
		edit.add(copier);
		edit.add(couper);
		edit.add(coller); 	
 
		edit.add(separerEdit);
		    // menu emboité special
		special.add(premier);
		special.add(deuxieme);
		special.add(troisieme);
			//l ajouter a edit
		edit.add(special);
		   // ajouter d autres items et ajouter edit a la barre de menu
		edit.add(new CheckboxMenuItem("Debug"));
		edit.add(new CheckboxMenuItem("Testing"));
		mBar.add(edit);
 
 
	 // attribuer les ecouteurs
	Detection detection=new Detection(this);
	nouveau.addActionListener(detection);
	ouvrir.addActionListener(detection);
	fermer.addActionListener(detection);
 
	detection.getGraphics();
    paint(detection.getGraphics());
	}	
 
 
 
 
 
 
 
//instanciation, taille de lafenetre et lisibilité et affichage du texte
 
	public static void main(String[] args)
	{
		DemoMenuCopy monmenu=new DemoMenuCopy("Menu");
		monmenu.setSize(600,220);
		monmenu.setVisible(true);
 
	}
 
 
}
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
 
import java.awt.*;
import java.awt.event.*;
 
 
public class Detection extends Frame implements ActionListener{
	String texte;
	DemoMenuCopy monmenu;
 
	//constructeur
	Detection(DemoMenuCopy monmenu){
		super();
		this.monmenu=monmenu;
	}
 
	public void actionPerformed(ActionEvent ev){
 
		Object SEV=ev.getSource();
 
		if(SEV==monmenu.nouveau){
			texte="Créer un nouveau fichier";
 
		}
		else if(SEV==monmenu.ouvrir){
			texte="Ouverure d'un  fichier";
 
		}
		else if(SEV==monmenu.fermer){
			texte="Fermeture du fichier";
 
		}
		repaint();
 
	}
 
	public void paint(Graphics g){
 
		g.drawString(texte,150,50);
 
	}
 
 
 
 
}
J'arrive pas à trouver mon erreur merci de bien vouloir m'aider