J'ai essayé de faire un programme qui sur l'écran la balle se déplacerait d'elle-même. Mais le problème est qu'il ne fait pas repeindre();JAVA déplaçant une balle
Une suggestion comment y remédier?
(classe principale) Main.java:
import javax.swing.*;
import java.awt.*;
public class Main extends JFrame{
static int x = 10;
public static void main(String[] args){
JFrame f = new JFrame("title");
f.setVisible(true);
f.setSize(300,250);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
sekon m = new sekon();
f.add(m);
antr t = new antr();
Thread th = new Thread(t);
th.start();
}
}
(deuxième classe) sekon.java:
import javax.swing.*;
import java.awt.*;
public class sekon extends JPanel{
int xiu = 10;
public void paintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.RED);
g.fillOval(xiu, 10, 20, 20);
}
public void changeX(int b){
this.xiu = b;
}
}
class antr extends JPanel implements Runnable{
int xi = 10;
sekon s = new sekon();
public void run(){
xi += 1;
s.changeX(xi);
JPanel p = new JPanel();
p.repaint();
try{
Thread.sleep(5);
}catch(Exception e){}
}
}
1) 'Thread.sleep (5)' Ne pas bloquer l'EDT. Appelez la méthode à partir d'un «temporisateur» Swing. 2) Pour une meilleure aide plus tôt, postez un [SSCCE] (http://sscce.org/). 3) Veuillez utiliser un retrait cohérent et logique pour les blocs de code. 4) S'il vous plaît, apprenez les conventions de dénomination Java courantes (http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#73307) (en particulier le cas utilisé pour les noms) pour la classe , méthode et noms d'attribut et l'utiliser de manière cohérente. –