J'essaie de déplacer un objet de manière aléatoire. J'ai ma classe GUI qui utilise une autre classe (disons Obj) pour créer une nouvelle image et ensuite démarrer le thread pour que l'objet bouge aléatoirement. Mais mon repaint() ne fonctionne pas dans ce contexte. Le code ci-dessous peut vous donner une idée de la façon dont j'utilise la méthode de repeint. merci,méthode repaint pour déplacer un objet au hasard
classe Gui
public class GUI extends JFrame implements ActionListener {
public void addNewObj(){
Obj f = new Obj();
x = panel.getGraphics();
f.paint(x);
Thread thr=new Thread(f);
thr.start();
}
}
Créer une classe d'objets
public class Obj extends JPanel implements Runnable
{
public Obj()
{
try {
myImage = ImageIO.read(new File("b:\\imgs\\bottle.jpg"));
}
catch (IOException e) {}
}
public void run()
{
long beforeTime, timeDiff, sleep;
beforeTime = System.currentTimeMillis();
while (true)
{
timeDiff = System.currentTimeMillis() - beforeTime;
sleep = DELAY - timeDiff;
try
{
moveRandom();
repaint();
Thread.sleep(1000);
}
catch (InterruptedException e)
{
System.out.println("interrupted");
}
beforeTime = System.currentTimeMillis();
}
}
Merci pour la réponse. pourriez-vous s'il vous plaît me donner un exemple avec un morceau de code. – user2119807
sûr, mal éditer, juste une seconde. – Paul
merci pour votre réponse rapide. Je comprends ce que vous mais je suis un novice. J'ai déjà ma méthode de peinture (voir ci-dessous) pour afficher mon image. Si j'utilise votre code, je n'obtiens aucune image mais de petits carrés vides qui ne bougent pas. peinture de vide publique 'code' (Graphiques g) { super.paint (g); Graphics2D g2d = (Graphics2D) g; g2d.drawImage (frogImage, x, y, this); Toolkit.getDefaultToolkit(). Sync(); g.dispose(); } 'code' – user2119807