动态图形编程(动画)

时间:2013-07-21 07:57:28

标签: java swing animation jlabel

我正在尝试编写像移动圈子这样的简单动画。我已经尝试过使用getGraphics()并使用它,但它不是动态的,它只画了一次

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

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

2 个答案:

答案 0 :(得分: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();
    }
}

答案 1 :(得分:1)

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

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