Ma classe ressemble à ceci.Impossible de faire repaint() travail
import java.awt.*;
import javax.swing.*;
public class Painter extends JPanel {
int x=200;
int y=200;
int newX;
int newY;
Painter(){
setPreferredSize(new Dimension(400,400));
}
public void moveSquare(int newX, int newY){
if(newY != y|| newX != x){
repaint(x,y, 10, 10);
y = newY;
x = newX;
repaint(x,y, 10, 10);
}
}
public void paintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.BLACK);
g.fillRect(x, y, 10, 10);
}
}
Les méthodes sont appelées à partir d'une autre classe. Les valeurs pour x
et y
changent comme elles le devraient. Cependant, le carré ne bouge pas. Ai-je fait quelque chose de mal ici?
EDIT Oui, j'appelle "super". Je l'ai juste effacé accidentellement quand j'ai copié et édité le code ici. Maintenant édité avant.
Eh bien, vous êtes sur le bon site. C'est sûr. –
Essayez d'appeler simplement 'repaint()' :-) – oldrinb
Peut-être que vous devriez utiliser un 'Canvas', de toute façon. – oldrinb