我正在尝试编写一个简单的动画,比如一个移动的圆圈。我试过使用getGraphics()
它,但它不是动态的,它只画了一次
所以请帮助我并指导我编写一个动态图形程序。
我的意思是例如定义一个函数,每次调用时,它都会在标签上画一条线。
以下是如何制作一个不断增长的矩形:
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();
}
}
你应该覆盖paintComponent(Graphic g)
. 每次调用时都会调用此方法repaint()
,因此您应该定期调用该方法。
您还应该将 DoubleBuffering 设置为 true:setDoubleBuffered(true)
它将防止您的动画可能闪烁