Boucle infinie et paintComponent
Bonjour à tous,
Peut-on m'aider sur une boucle infinie?
je suis sûr que la réponse est devant mes yeux mais etant un novice,je ne trouve pas et ca m'enerve :cry:
j'ai fait une boucle infinie pour faire rebondire une balle quand elle touche les bords de la fenetre( enfantin normalement...)
mais voila, le code ci-dessous n'affiche rien et si je désactive la méthode lancer(), ben l'affichage est correct mais ca ca bouge pas; le probleme est donc la méthode lance()...
Encore une chose, pour les animations, est il plus adéquat d'utiliser un Thread.sleep ou un objet ActionListener? et pourquoi?
Merci d'avance.
Code:
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 41 42 43 44
| private void lancer(){
int x,y;
boolean invX=false;
boolean invY=false;
while(true)
{
x=bal.getPosX();
y=bal.getPosY();
if (x>this.getWidth()-bal.getLargBal())
invX=true;
if (x<1)
invX=false;
if (y>this.getHeight()-bal.getHautBal())
invY=true;
if (y<1)
invY=false;
if (invX==true)
{
bal.setPosX(x--);
}
else
{
bal.setPosX(x++);
}
if (invY==true)
{
bal.setPosY(y--);
}
else
{
bal.setPosY(y++);
}
this.repaint();
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} |