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:
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:
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
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); } //------------------------------------------ //------------------------------------------ }
Voila Merci de votre aide .
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; } }
A+
Partager