绘制后处理Graphics2D绘图

时间:2013-05-04 11:59:10

标签: java swing graphics dispose graphics2d

对于我正在处理的游戏,我需要绘制一个越来越小的矩形。我已经想出如何通过使用这样的摆动计时器来绘制更小的矩形:

    timer = new Timer(100, new ActionListener(){
        public void actionPerformed(ActionEvent e){
            Graphics2D g2d = (Graphics2D) panel.getGraphics();
            if(width > 64){
                g2d.drawRect(x,y,width,height);
                x += 1;
                y += 1;
                width -= 1;
                height -= 1;
            }
        }
    });
    timer.start();

我遇到的问题是它不会删除之前绘制的矩形,因此它看起来不会缩小,但更像是填充。所以如何在绘制较小的矩形后立即删除先前绘制的矩形?

1 个答案:

答案 0 :(得分:2)

您可以从: -

开始

变化:

Graphics2D g2d = (Graphics2D) panel.getGraphics(); 

为:

repaint();

来自Graphics的{​​{1}}实例是暂时的,只要JVM认为有必要,窗口就可以重新绘制。

重写的方法可能如下所示。

getGraphics()