IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Applets Java Discussion :

Problème avec classe et paint()


Sujet :

Applets Java

  1. #1
    Membre confirmé Avatar de babou54
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 137
    Par défaut Problème avec classe et paint()
    salut salut !

    Alors voila j'ai un problème avec mon applet qui doit m'afficher un rond qui se déplace au clic de la souris (je suis débutante hein :!) :

    j'ai une classe cercle :
    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
     
    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;
     
    public class Cercle
    {
    	private int x=0;
     
        public Cercle(int x) 
        {
        	this.x=x;
        }
     
        public int getX()
        {
        	return this.x;
        }
     
        public void setX(int x)
        {
        	this.x=x;	
        }
     
        public void paint(Graphics g) 
        {
        	//effacer avant de redessiner
        	g.clearRect(0,0,800,800);
       		// couleur du rond
    		g.setColor(Color.green);
    		// place et dimension du rond
    		g.fillOval(x,50,100,100);
        }    
     
    }
    et j'ai le programme principal
    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
     
    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;
     
    public class Controle2 extends JApplet
    {
     
    	JButton demarrer=new JButton("Demarrer");
     
    	// instanciation du cercle
    	Cercle leCercle=new Cercle(0);
     
    	Graphics g;
     
    	public void init() 
    	{
    		// l'action du bouton est de modifier l'abscisse du cercle
    		demarrer.addActionListener(new ActionListener() 
    		{
    			public void actionPerformed(ActionEvent e) 
    			{
    				leCercle.setX(leCercle.getX()+10);
    				repaint();
    			}
    		});
    		this.add(demarrer,BorderLayout.NORTH);
    		g=this.getGraphics();
        	leCercle.paint(g);
    	}
     
     
     
    }
    Au lancement de l'applet j'ai mon bouton qui s'affiche, mais ce n'est pas le cas de mon superbe rond vert

    Please me

  2. #2
    Membre émérite
    Avatar de kmdkaci
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 560
    Par défaut
    Bonjour,
    Dans ta classe Controle2.java enléve l'appel "leCercle.paint(g);" (en le déplaçant) et crée une methode paint() comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void paint(Graphics g)
            {
              leCercle.paint(g);
            }
    A chaque fois que tu cliques sur le bouton, la methode repaint() s'exécute, de ce fait l'Applet fait appel à paint().

    Un autre truc facultatif, enléve les deux imports suivants dans la classe Cercle.java, il s'agit de import javax.swing.* et import java.awt.event.* car tu n'utilises pas d'evenements, ni de composants swing.

    le code de la calsse Controle2.java devient :
    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
    import java.applet.Applet;
    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;
     
    public class Controle2 extends JApplet
    {
     
      JButton demarrer=new JButton("Demarrer");
     
      // instanciation du cercle
      Cercle leCercle=new Cercle(0);
     
      Graphics g;
     
      public void init()
      {
        // l'action du bouton est de modifier l'abscisse du cercle
        demarrer.addActionListener(new ActionListener()
        {
          public void actionPerformed(ActionEvent e)
          {
            leCercle.setX(leCercle.getX()+10);
            repaint();
     
     
          }
        });
        this.add(demarrer,BorderLayout.NORTH);
        g=this.getGraphics();
        //leCercle.paint(g); on le déplace dans la methode paint(Graphics g)
     
      }
     
            //Methode à ajouter
            public void paint(Graphics g)
            {
              leCercle.paint(g);
            }
    } //Fin Classe

  3. #3
    Membre confirmé Avatar de babou54
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 137
    Par défaut
    Merci !! ca marche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec classe dérivé de datagrid (webForm)
    Par wadison dans le forum Framework .NET
    Réponses: 1
    Dernier message: 19/02/2008, 14h40
  2. problème avec class vector
    Par abdelmajid_daosabah dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 12/11/2007, 22h40
  3. Problème avec Class.forName
    Par steftanguy dans le forum JDBC
    Réponses: 4
    Dernier message: 14/08/2007, 16h24
  4. problème avec classe interface
    Par bandit_debutant dans le forum Langage
    Réponses: 6
    Dernier message: 05/11/2006, 20h54
  5. Problème avec classe MySQL
    Par shadeoner dans le forum Requêtes
    Réponses: 1
    Dernier message: 10/07/2006, 11h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo