Bonjour,

Je suis entrain de faire un TP,oul'on me demande de creer une ardoise magique.

Tout d'abrod voila ce que j'obtiens:
Nom : Capture.JPG
Affichages : 1228
Taille : 52,6 Ko

Comme vous le voyez tout fonctionne bien sauf que:
1-Des que je commence a dessiner la 2eme barre de menu apparer
2-Je n'arrive pas a changer la forme du pointeur.

Pour le "prb1" ,j'ai compris qu'en faite les 2 barres de menu se peignaient sur le JPanel,et pas sur la JFrame,j'ai essaye differentes methodes pour bien lui faire comprendre que les barres de menu devaient s'ajouter a "pan" et non pas a "JPan1",mais sans succes.

Je vous mets tour mon code au cas ou.
Voici mon code:
Classe Fenetre:
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
public class Fenetre extends JFrame implements MouseMotionListener {
 
	//
	public JPanel pan=new JPanel();
	private Panneau JPan1 =new Panneau();
 
public Fenetre(){
 
         this.setTitle("TP-Ardoise Magique");
         this.setSize(700, 700);
         this.setLocationRelativeTo(null);
         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         pan.setLayout(new BorderLayout());//indique qu'il faut prendre compte le positionnemt des touches
         getContentPane().add(pan);//ajout du JPanel pour le rendre visible
         //Menu
         this.initMenu();
         this.initToolBar();
         pan.add(JPan1);
         JPan1.addMouseMotionListener(this);
         //rendre visible
         this.setVisible(true);
 
}
 
 
//---------------------------------------------------Menu-------------------------------------------------------
 
    private JMenuBar menuBar1 = new JMenuBar();
	//
	private JMenu fichier=new JMenu("Fichier");
	private JMenuItem effacer=new JMenuItem("Effacer");
	//
	private JMenu tPointeur=new JMenu("Pointeur");//taille du pointeur//********
	private JCheckBox p_petit = new JCheckBox("taille petite");//p=pointeur
	  private JCheckBox p_grand = new JCheckBox("taille grande");
	//
 
	private JMenuItem quitter=new JMenuItem("Quitter");
	//
	private JMenu edition=new JMenu("Edition");
	private JMenu p_Forme=new JMenu("Forme du Pointeur");//p=pointeur
	private JMenuItem rond=new JMenuItem("Rond");
	private JMenuItem carre=new JMenuItem("Carre");
	private JMenu p_Couleur=new JMenu("Couleur du Pointeur");//
	private JMenuItem rouge=new JMenuItem("Rouge");
	private JMenuItem vert=new JMenuItem("Vert");
	private JMenuItem bleu=new JMenuItem("Bleu");
 
	public void initMenu() {
 
		//
		this.menuBar1.add(fichier);
		effacer.addActionListener(new ActionListener(){
		      public void actionPerformed(ActionEvent event){
		        JPan1.repaint();
		      }
		    });
		effacer.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, KeyEvent.CTRL_MASK));//Accelerateur
		this.fichier.add(effacer);
		//
		this.fichier.add(tPointeur);
		p_grand.setSelected(true);//
		p_petit.addActionListener(new ActionListener(){//Definit la taille du pointeur
		      public void actionPerformed(ActionEvent event){
		  		p_grand.setSelected(false);
		  		JPan1.setTailleX(20);
		  		JPan1.setTailleY(20);
		      }
	    });
		this.tPointeur.add(p_petit);
		p_grand.addActionListener(new ActionListener(){
		      public void actionPerformed(ActionEvent event){
		  		p_petit.setSelected(false);
		  		JPan1.setTailleX(50);
		  		JPan1.setTailleY(50);
		      }
	    });
		this.tPointeur.add(p_grand);
		//
		this.fichier.addSeparator();
		//
		   quitter.addActionListener(new ActionListener(){
			      public void actionPerformed(ActionEvent event){
			        System.exit(0);
			      }
			    });
		   quitter.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W, KeyEvent.CTRL_MASK));//Accelerateur
		this.fichier.add(quitter);
 
 
		//
		this.menuBar1.add(edition);//
		this.edition.add(p_Forme);//
		rond.addActionListener(new ActionListener(){
		      public void actionPerformed(ActionEvent event){
		    	  JPan1.setCarreB(false);
		      }
		    });
		this.p_Forme.add(rond);
		carre.addActionListener(new ActionListener(){
		      public void actionPerformed(ActionEvent event){
		    	  JPan1.setCarreB(true);
		      }
		    });
		this.p_Forme.add(carre);
		//
		this.edition.addSeparator();
		// 
		this.edition.add(p_Couleur);//
		rouge.addActionListener(new ActionListener(){
		      public void actionPerformed(ActionEvent event){
		        JPan1.setXc(1);
		      }
		    });
		this.p_Couleur.add(rouge);
		vert.addActionListener(new ActionListener(){
		      public void actionPerformed(ActionEvent event){
		        JPan1.setXc(2);
		      }
		    });
		this.p_Couleur.add(vert);
		bleu.addActionListener(new ActionListener(){
		      public void actionPerformed(ActionEvent event){
		        JPan1.setXc(0);
		      }
		    });
		this.p_Couleur.add(bleu);
 
		//
        //Ajout de la barre de menus sur la fenêtre
        this.setJMenuBar(menuBar1);
}
 
 
 
	//
	private JToolBar toolBar=new JToolBar();
	//
	private JButton tB_Carre =new JButton(new ImageIcon("img/carre.png"));//tB=tool bar
	private JButton tB_Rond =new JButton(new ImageIcon("img/rond.png"));
	private JButton c_Bleu =new JButton(new ImageIcon("img/bleu.png"));
	private JButton c_Rouge =new JButton(new ImageIcon("img/rouge.png"));
	private JButton c_Vert =new JButton(new ImageIcon("img/vert.png"));
 
	//
	public void initToolBar(){
 
		//         
		tB_Carre.addActionListener(new ActionListener(){
		      public void actionPerformed(ActionEvent event){
 
		    	  JPan1.setCarreB(true);
		      }
		    });
		this.toolBar.add(tB_Carre);
		tB_Rond.addActionListener(new ActionListener(){
		      public void actionPerformed(ActionEvent event){
		    	 JPan1.setCarreB(false);
		      }
		    });
		this.toolBar.add(tB_Rond);
		this.toolBar.addSeparator();
		//
		c_Bleu.addActionListener(new ActionListener(){
		      public void actionPerformed(ActionEvent event){
		        JPan1.setXc(0);
		      }
		    });
		this.toolBar.add(c_Bleu);
		c_Rouge.addActionListener(new ActionListener(){
		      public void actionPerformed(ActionEvent event){
		        JPan1.setXc(1);
		      }
		    });
		this.toolBar.add(c_Rouge);
		c_Vert.addActionListener(new ActionListener(){
		      public void actionPerformed(ActionEvent event){
		        JPan1.setXc(2);
		      }
		    });
		this.toolBar.add(c_Vert);
 
		//
		//ajout de la toolBar
		this.add(toolBar, BorderLayout.NORTH);
 
	}
 
 
//---------------------------------------------------FIN:Menu-------------------------------------------------------
 
	@Override
	public void mouseDragged(MouseEvent e) {
		// TODO Auto-generated method stub
	int newX=e.getX(),newY=e.getY();
	JPan1.setPosX(newX);
	JPan1.setPosY(newY);
	JPan1.getGraphics();
	JPan1.repaint();
	}
 
	@Override
	public void mouseMoved(MouseEvent e) {
		// TODO Auto-generated method stub
		int x = e.getX();
		int y = e.getY();
		System.out.println(x);
		System.out.println(y);
	}
 
	//------------------------------------------
 
	//------------------------------------------
 
 
 
}
Classe Panneau:
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
public class Panneau extends JPanel  {
 
public boolean carreB=true;
 
	public void paintComponent(Graphics g){
		if(carreB=true){
		g.setColor(couleur [x_c]);//c=couleur
		g.fillRect(posX, posY, tailleX, tailleY);
		}else{
			System.out.println("carre=>faux");
		}
		if(carreB=false){
		g.setColor(couleur [x_c]);//c=couleur
		g.fillOval(posX, posY, 50, 50);
	}else{
		System.out.println("rond=>faux");
	}
	}
 
 
	//Dimension
	int tailleX,tailleY;
 
	public int getTailleX(){
		return tailleX;
	}
	public void setTailleX(int tailleX){
		this.tailleX=tailleX;
	}
	public int getTailleY(){
		return tailleY;
	}
	public void setTailleY(int tailleY){
		this.tailleY=tailleY;
	}
 
	//Pointeur
	public boolean getCarreB(){
		return carreB;
	}
	public void setCarreB(boolean carreB){
		this.carreB=carreB;
	}
 
	//Couleur
	public int x_c;
	public int getXc(){
		return x_c;
	}
	public void setXc(int X_c){
		this.x_c=X_c;
	}
	Color couleur []={Color.blue,Color.red,Color.green};
 
	//
	private int posX,posY;
 
	//
	public int getPosX(){
		return posX;
	}
	public void setPosX(int posX){
		this.posX=posX;
	}
	//
	public int getPosY(){
		return posY;
	}
	public void setPosY(int posY){
		this.posY=posY;
	}
 
 
}
Voila Merci de votre aide .
A+