bonjour
j'ai essayé ce prg en compilant j'ai erreur suivantes
veuillez m'aidez svp
erreur se trouve dans la class Panneau
dans ces lignes:
la ligne 63la ligne 34
Code : Sélectionner tout - Visualiser dans une fenêtre à part int[]ptsY={s1Y,s2Y,s3Y};Exception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problem:
Code : Sélectionner tout - Visualiser dans une fenêtre à part draw(g);
s1Y cannot be resolved
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 import java.awt.Color; import java.awt.font.*; import java.awt.GradientPaint; import java.awt.Graphics; import java.awt.Graphics2D; import javax.swing.JPanel; public class Panneau extends JPanel { private int posX=-50; private int posY=-50; private int drawSize=50; private boolean morph=false,reduce=false; private String forme="ROND"; private int increment=0; public void paintComponent (Graphics g) { g.setColor (Color.white); g.fillRect (0,0,this.getWidth ( ),this.getHeight ( )); g.setColor (Color.red); if(this.morph) drawMorph(g); else draw(g); } private void draw(Graphics g) { if(this.forme.equals("ROND")) { g.fillOval(posX,posY,50,50); } if(this.forme.equals("CARRE")) { g.fillRect(posX,posY,50,50); } if(this.forme.equals("TRIANGLE")) { int s1X=posX+50/2; int s1y=posY; int s2X=posX+50; int s2Y=posY+50; int s3X=posX; int s3Y=posY+50; int[]ptsX={s1X,s2X,s3X}; int[]ptsY={s1Y,s2Y,s3Y}; g.fillPolygon(ptsX,ptsY,3); } if(this.forme.equals("ETOILE")) { int s1X=posX+50/2; int s1Y=posY; int s2X=posX+50; int s2Y=posY+50; g.drawLine(s1X,s1Y,s2X,s2Y); int s3X=posX; int s3Y=posY+50/3; g.drawLine(s2X,s2Y,s3X,s3Y); int s4X=posX+50; int s4Y=posY+50/3; g.drawLine(s3X,s3Y,s4X,s4Y); int s5X=posX; int s5Y=posY+50; g.drawLine(s4X,s4Y,s5X,s5Y); g.drawLine(s5X,s5Y,s1X,s1Y); } } private void drawMorph(Graphics g) { increment++; if(drawSize>=50)reduce=true; if(drawSize<=10)reduce=false; if(reduce) drawSize=drawSize-getUsedSize(); else drawSize=drawSize+getUsedSize(); if(this.forme.equals("ROND")) { g.fillOval(posX, posY, drawSize, drawSize); } if(this.forme.equals("CARRE")) { g.fillRect(posX, posY, drawSize, drawSize); } if(this.forme.equals("TRIANGLE")) { int s1X=posX+drawSize/2; int s1Y=posY; int s2X=posX+drawSize; int s2Y=posY+drawSize; int s3X=posX; int s3Y=posY+drawSize; int[]ptsX={s1X,s2X,s3X}; int[]ptsY={s1Y,s2Y,s3Y}; g.fillPolygon(ptsX,ptsY,3); } if(this.forme.equals("ETOILE")) { int s1X=posX+drawSize/2; int s1Y=posY; int s2X=posX+drawSize; int s2Y=posY+drawSize; g.drawLine(s1X,s1Y,s2X,s2Y); int s3X=posX; int s3Y=posY+drawSize/3; g.drawLine(s2X,s2Y,s3X,s3Y); int s4X=posX+drawSize; int s4Y=posY+drawSize/3; g.drawLine(s3X,s3Y,s4X,s4Y); int s5X=posX; int s5Y=posY+drawSize; g.drawLine(s4X,s4Y,s5X,s5Y); g.drawLine(s5X,s5Y,s1X,s1Y); } } private int getUsedSize() { int res=0; if(increment/10==1) { increment=0; res=1; } return res; } public int getDrawSize() { return drawSize; } public boolean isMorph() { return morph; } public void setMorph(boolean bool) { this.morph=bool; drawSize=50; } public void setForme(String form) { this.forme=form; } 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; } }
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 import java.awt.BorderLayout; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JCheckBoxMenuItem; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JRadioButtonMenuItem; public class FenetreTest extends JFrame { private Panneau pan = new Panneau(); private JPanel container = new JPanel(); private int compteur = 0; private boolean animated = true; private boolean backX, backY; private int x,y ; private Thread t; private JMenuBar menuBar = new JMenuBar(); private JMenu animation = new JMenu("Animation"), forme = new JMenu("Forme"), typeForme = new JMenu("Type de forme"), aPropos = new JMenu("À propos"); private JMenuItem lancer = new JMenuItem("Lancer l'animation"), arreter = new JMenuItem("Arrêter l'animation"), quitter = new JMenuItem("Quitter"), aProposItem = new JMenuItem("?"); private JCheckBoxMenuItem morph = new JCheckBoxMenuItem("Morphing"); private JRadioButtonMenuItem carre = new JRadioButtonMenuItem("Carré"), rond = new JRadioButtonMenuItem("Rond"), triangle = new JRadioButtonMenuItem("Triangle"), etoile = new JRadioButtonMenuItem("Etoile"); private ButtonGroup bg = new ButtonGroup(); public FenetreTest(){ this.setTitle("Animation"); this.setSize(300, 300); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLocationRelativeTo(null); container.setBackground(Color.white); container.setLayout(new BorderLayout()); container.add(pan, BorderLayout.CENTER); this.setContentPane(container); this.initMenu(); this.setVisible(true); } private void initMenu(){ animation.add(lancer); arreter.setEnabled(false); animation.add(arreter); animation.addSeparator(); quitter.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){ System.exit(0); } }); animation.add(quitter); bg.add(carre); bg.add(triangle); bg.add(rond); bg.add(etoile); typeForme.add(rond); typeForme.add(carre); typeForme.add(triangle); typeForme.add(etoile); rond.setSelected(true); forme.add(typeForme); forme.add(morph); aPropos.add(aProposItem); menuBar.add(animation); menuBar.add(forme); menuBar.add(aPropos); this.setJMenuBar(menuBar); } private void go(){ x = pan.getPosX(); y = pan.getPosY(); while(this.animated){ if(pan.isMorph()) { if(x < 1)backX = false; if(x > pan.getWidth() - pan.getDrawSize())backX = true; if(y < 1)backY = false; if(y > pan.getHeight() - pan.getDrawSize())backY = true; } else { if(x < 1)backX = false; if(x > pan.getWidth()-50)backX = true; if(y < 1)backY = false; if(y > pan.getHeight()-50)backY = true; } if(!backX)pan.setPosX(++x); else pan.setPosX(--x); if(!backY) pan.setPosY(++y); else pan.setPosY(--y); pan.repaint(); try { Thread.sleep(3); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public class BoutonListener implements ActionListener{ public void actionPerformed(ActionEvent arg0) { JOptionPane jop = new JOptionPane(); int option = jop.showConfirmDialog(null, "Voulez-vous lancer l'animation ?", "Lancement de l'animation", JOptionPane.YES_NO_OPTION, JOptionPane.PLAIN_MESSAGE); if(option == JOptionPane.OK_OPTION) { lancer.setEnabled(false); arreter.setEnabled(true); animated = true; t = new Thread(new PlayAnimation()); t.start(); } } } class Bouton2Listener implements ActionListener{ public void actionPerformed(ActionEvent e) { JOptionPane jop = new JOptionPane(); int option = jop.showConfirmDialog(null, "Voulez-vous arrêter l'animation ?", "Arrêt de l'animation", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE); if(option != JOptionPane.NO_OPTION && option != JOptionPane.CANCEL_OPTION && option != JOptionPane.CLOSED_OPTION) { animated = false; lancer.setEnabled(true); arreter.setEnabled(false); } } } class PlayAnimation implements Runnable{ public void run() { go(); } } class FormeListener implements ActionListener{ public void actionPerformed(ActionEvente e) { } } class MorphListener implements ActionListener{ public void actionPerformed(ActionEvent e) { if(morph.isSelected())pan.setMorph(true); else pan.setMorph(false); } } public static void main(String[]main) { FenetreTest fen=new FenetreTest(); } }
Partager