Java interface graphique

Fermé
rouky - 24 févr. 2008 à 17:42
sassouki2 Messages postés 18 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 8 avril 2009 - 24 févr. 2008 à 20:28
Bonjour,
j'ai un petit souci lors de la compilation de mon programme en java qui est censé dessiner un rond noir lors du click de ma souris dans une fenêtre.
Lors de la compilation de mon fichier PanneauDessin2.java j'obtiens de le message suivant:
PanneauDessin2.java:30: cannot find symbol
symbol : variable disque
location: class PanneauDessin2
disque.dessiner(g);
^
1 error


Voici mon code:

import javax.swing.JPanel;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.JFrame;


class FenetreDessin{

public static void main(String[] argv)
{
JFrame fenetre = new JFrame();
//le container de fenetre contient PanneauDessin
fenetre.setContentPane(new PanneauDessin2());
//localise la fenetre sur l'écran
fenetre.setLocation(100,100);
//dimensionnement de fenetre en fonction des composants qu'il contient
//et des gestionnaires de répartition
fenetre.pack();
fenetre.setVisible(true);
}
}



class PanneauDessin2 extends JPanel implements MouseListener{


PanneauDessin2()
{
setBackground(Color.white);
setPreferredSize(new Dimension(300,300));
addMouseListener(this);
}

public void mouseClicked(MouseEvent evt)
{
Disque disque = new Disque(evt.getX(),evt.getY(),5,Color.black);
}

public void mouseReleased(MouseEvent evt){}
public void mousePressed(MouseEvent evt) {}
public void mouseExited(MouseEvent evt){}
public void mouseEntered(MouseEvent evt){}

public void paintComponent(Graphics g)
{
super.paintComponent(g);
disque.dessiner(g);
}
}

abstract class Forme{

//définition des deux attributs d'entrée pour l'abscisse et l'ordonnée du
//centre du rectangle circonscrit à la forme
int abs, ord;
//attributs entiers pour la largeur et la hauteur du rectangle circonscrit à la
//forme
int larg, longu;
// attribut pour la couleur de la forme
Color couleur;
//Constructeur permettant d'initialiser les cinq attributs
Forme(int abs,int ord,int larg,int longu,Color couleur)
{
this.abs=abs;
this.ord=ord;
this.larg=larg;
this.longu=longu;
this.couleur=couleur;
}
abstract void dessiner(Graphics g);
}


class Disque extends Forme{

// définition des attributs de la classe
int abs, ord, rayon;
Color couleur;

//constructeur qui invoque le constructeur de la classe Forme
Disque(int abs,int ord, int rayon, Color couleur)
{
super(abs,ord,rayon*2,rayon*2,couleur);
}

public void dessiner(Graphics g)
{
g.setColor(couleur);
g.fillOval(abs, ord, rayon*2, rayon*2);
}
}


Si quelqu'un pouvait me dire comment résoudre ce petit problème ce serait vraiment très sympa.
A voir également:

1 réponse

sassouki2 Messages postés 18 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 8 avril 2009
24 févr. 2008 à 20:28
slt,

tu dois renommer la classe principale avec le nom de ton fchier .java càd que la classe que tu as nommé fenetreDessin

doit être nommée panneauDessin2.
0