我正在尝试编写像移动圈子这样的简单动画。我已经尝试过使用getGraphics()
并使用它,但它不是动态的,它只画了一次
所以请帮助我并指导我编写一个动态图形程序。
我的意思是例如定义一个函数,每次调用时,它都会在标签上绘制一条线。
答案 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)
它可以防止动画闪烁