我剛開始學習GUI的和Swing,並決定寫一個程序我在一本教科書來顯示彩色矩形,使它看起來像它在減小尺寸在屏幕上找到。的Java Swing動畫的基本問題
下面是我寫的代碼,我的問題是,矩形在屏幕上顯示,但不重新粉刷,以更小的尺寸每隔50ms。任何人都可以指出我哪裏錯了?
非常感謝
import javax.swing.*;
import java.awt.*;
public class Animate {
int x = 1;
int y = 1;
public static void main(String[] args){
Animate gui = new Animate();
gui.start();
}
public void start(){
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Rectangles rectangles = new Rectangles();
frame.getContentPane().add(rectangles);
frame.setSize(500,270);
frame.setVisible(true);
for(int i = 0; i < 100; i++,y++,x++){
x++;
rectangles.repaint();
try {
Thread.sleep(50);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
class Rectangles extends JPanel {
public void paintComponent(Graphics g){
g.setColor(Color.blue);
g.fillRect(x, y, 500-x*2, 250-y*2);
}
}
}
你做任何基本的調試?你有沒有向你的paint方法添加一條語句來查看它是否被調用?你有沒有顯示x/y的值? – camickr