Guten Abend,
ich würde gerne einen Punkt innerhalb eines JDialog (später innerhalb eines JPanel) bewegen.
Der Punkt soll sich jedoch nur alle 20ms weiterbewegen.
Ich habe versucht Thread.sleep() in einem Thread zu starten, was nicht funktioniert hat. Dann habe ich dasselbe mit dem JDialog versucht, mit dem gleichen Ergebniss.Dann versuchte ich es mit dem Timer....was auch nicht funktionierte.
Ohne repaint() funktioniert es wunderbar, jedoch werden die Punkte dann nur übereinander gemalt.
ich würde gerne einen Punkt innerhalb eines JDialog (später innerhalb eines JPanel) bewegen.
Der Punkt soll sich jedoch nur alle 20ms weiterbewegen.
Ich habe versucht Thread.sleep() in einem Thread zu starten, was nicht funktioniert hat. Dann habe ich dasselbe mit dem JDialog versucht, mit dem gleichen Ergebniss.Dann versuchte ich es mit dem Timer....was auch nicht funktionierte.
Ohne repaint() funktioniert es wunderbar, jedoch werden die Punkte dann nur übereinander gemalt.
Java:
import java.awt.event.ActionEvent;
import javax.swing.JDialog;
import javax.swing.Timer;
class gui {
int y;
JDialog d = new JDialog();
gui() {
d.setSize(100, 100);
d.setVisible(true);
}
void updater() {
if (y == 100) {y = 0;}
else {y++;}
//d.repaint();
d.getGraphics().fillOval(y, 50, 25, 25);
}
}
public class test2 {
public static void main(String[] args) {
gui gu = new gui();
new Timer(20, (ActionEvent e) -> {gu.updater();}).start();
}
}