0

我正在尝试编写一个简单的动画,比如一个移动的圆圈。我试过使用getGraphics()它,但它不是动态的,它只画了一次

所以请帮助我并指导我编写一个动态图形程序。

我的意思是例如定义一个函数,每次调用时,它都会在标签上画一条线。

4

2 回答 2

2

以下是如何制作一个不断增长的矩形:

public class MovingRectangle extends JPanel {
    private Timer timer = new Timer(500, new ActionListener() {
        public void actionPerformed(ActionEvent event) {
            rectWidth += 100;
            repaint();
        }
    };

    private int rectWidth = 100;

    public void paintComponent(Graphics g) {
         super.paintComponent(g);
         g.drawRect(0, 0, 100. rectWidth);
    }

    public void start() {
        timer.start();
    }

    public void stop() {
        timer.stop();
    }

    public void reset() {
        rectWidth = 100;
        repaint();
    }
}
于 2013-07-21T08:04:55.673 回答
1

你应该覆盖paintComponent(Graphic g). 每次调用时都会调用此方法repaint(),因此您应该定期调用该方法。

您还应该将 DoubleBuffering 设置为 true:setDoubleBuffered(true) 它将防止您的动画可能闪烁

于 2013-07-21T08:04:04.577 回答