[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;
 }
}


2 réponses

  1. Chris 94 Messages postés 1937 Date d'inscription   Statut Modérateur Dernière intervention   7 536
     
    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
    1. KX Messages postés 19031 Statut Modérateur 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
    2. Chris 94 Messages postés 1937 Date d'inscription   Statut Modérateur Dernière intervention   7 536
       
      :-)
      0
  2. 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