Je veux qu'une ficelle soit dessinée à une position aléatoire, puis je saute à une nouvelle position mais je laisse une empreinte de soi derrière.java canvas drawstring
Il ne semble pas y avoir de commande "stamp" dans java.
Comment puis-je le faire? Jusqu'ici je n'ai qu'un caractère aléatoire qui saute mais ne laisse pas de copie de lui-même derrière.
import java.awt.Canvas;
import java.awt.Graphics;
import java.util.Random;
import javax.swing.JFrame;
@SuppressWarnings("serial")
public class test extends Canvas {
private static Random random = new Random();
public void paint(Graphics g) {
g.drawString("X", random.nextInt(10) * 10, random.nextInt(10) * 10);
try {
Thread.sleep(250);
} catch (Exception e) {}
repaint();
}
public static void main(String[] argS) {
test canvas = new test();
JFrame frame = new JFrame();
frame.add(canvas);
frame.setSize(300, 300);
frame.setVisible(true);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
'repeindre()' retourne toujours immédiatement, avant que la peinture est effectivement fait - il est juste une façon de dire « cela devra être repeint quelque temps dans le futur ". Bien sûr, l'invoquer depuis 'paint()' n'est pas vraiment sensé - quand vous avez fini de peindre, l'état actuel ne devrait pas avoir besoin d'être repeint. –