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 :
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
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 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 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)
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); } }J'arrive pas à trouver mon erreur merci de bien vouloir m'aider
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); } }![]()
Partager