Bonsoir,
Garde donc tes cheveux

.
Alors une petite question dans l'actionListener c'est quoi pan?
Si c'est ce que je pense, c'est à dire Dessin dans ce cas tu ne peux pas avec la façon dont tu fais car tu déplaces la zone de dessin et non l'objet fillOval.
Pour un truc évolutif ce que je te conseil.
1/ Faire une classe cercle qui contient le rayon couleur et tous les descriptif
2/ Faire un tableau de cercle
3/ Ainsi dans le panel dessin
C'est un extrait du code d'un paint que j'ai fais, Forme est une interface avec je fais aussi des rectangles trait ou cercle mais le principe est le même
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
public void paint(Graphics g)
{
//On cast l'objet Graphics en Graphics2D
Graphics2D g2 = (Graphics2D)g;
//pour changer le fond du panel il faut utiliser paint component
super.paintComponent(g2);
//Dessin du fond du dessin
setBackground(modele.getCouleurFond());
//image de fond
g2.drawImage(modele.getImageDeFond(),0,0,this.getWidth(),this.getHeight(), null, this);
for (Iterator<Forme> it = modele.getFormesIterateur(); it.hasNext();)
{
Forme f = it.next();
f.dessinerContour(g2, modele.getCouleurTrait());
f.dessinerPlein(g2,modele.getCouleurRemplissage());
}
} |
4) Pour arriver à ton problème le setlocation ne doit pas être fait sur le panel dessin mais sur l'objet cercle, le x et le y de fillOval(x,y,10,10) puis faire un repaint du panel, panel.repaint.
avec l'idée des étapes 1 2 3 tu set la position de la classe cercle et tu repaint la boucle fera le reste. Mais si tu veux juste tester et donc avoir un oval il faut que mettre en getter et setter les positions x et y de l'oval puis un repaint.
voila mon avis ^_^°.
Partager