[java]mon rond bondit pas

domxaline -  
 domxaline -
Bonjour,
j'écris le prg suivant,en l'exécutant le fenêtre apparait, mais il n' y rien dedans;
aucune erreur non plus
aidez moi svp

import java.awt.Dimension;
import javax.swing.JFrame;
public class Fenetre extends JFrame
{
  private Panneau pan=new Panneau();
 
  public Fenetre()
  {
    this.setTitle("Animation");
    this.setSize(300,300);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setLocationRelativeTo(null);
    this.setContentPane(pan);
    this.setVisible(true);
    go();
       }
       private void go()
            {
             int x=pan.getPosX(),y=pan.getPosY();
             boolean backX=false;
             boolean backY=false;
             while(true)
             {
              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.setPosX(++y);
              else
               pan.setPosX(--y);
               pan.repaint();
 
             try
             {
              Thread.sleep(3);
             }
             catch(InterruptedException e)
             {
              e.printStackTrace();
             }
         }
        }    
        public static void main(String[]args)
         {   
                 Fenetre pan=new Fenetre();    
         }
     } 
 
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Panneau extends JPanel
{
 private int posX=-50;
 private int posY=-50;
 
 public void paintComponent(Graphics g)
     { 
  g.setColor(Color.white);
  g.fillRect(0,0,this.getWidth(),this.getHeight());
  g.setColor(Color.red);//on redéfinit une couleur pour notre rond
  g.fillOval(posX,posY,50,50);
     }
 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 voir également:

2 réponses

Chris 94 Messages postés 54087 Date d'inscription   Statut Modérateur Dernière intervention   7 345
 
Bonsoir,

Tu as signalé avoir résolu ton souci. L'usage des forums veut que, quand on a trouvé soi-même la solution, on revienne pour l'expliquer aux passants intéressés. Merci.
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
"Tu as signalé avoir résolu ton souci."
Ah !? Si seulement...

"L'usage des forums veut que, quand on a trouvé soi-même la solution, on revienne pour l'expliquer aux passants intéressés."
Pour les "passants intéressés" je leur conseille : Comment faire ricocher des Balles entre elles.
Il y a tout dedans : dessin d'une balle (plusieurs en fait), rebond sur les bords, rebond sur les autres balles et tout ça en respectant (au mieux) les lois de la physique ! Ce devrait être plus utile...
0
Chris 94 Messages postés 54087 Date d'inscription   Statut Modérateur Dernière intervention   7 345
 
:-)
0
domxaline
 
bonjour
c'est une erreur de ma part,au lieu d'écrire les codes x et y,
j'écris deux fois pour x pour ça mon prg a planté

voilà mon erreur corrigé:
//si on avance, on icrememente la coordonnée
	        		   if(!backX)
	        			   pan.setPosX(++x);
	        		   //sinon, on décrémente
	        		   else
	        			   pan.setPosX(--x);
	        		   
	        		   //idem pour l'axe Y
	        		   if(!backY)
	        			   pan.setPosY(++y);
	        		   //sinon, on décrémente
	        		   else
	        			   pan.setPosY(--y);
0