繁体   English   中英

Java JPanel清除

[英]Java JPanel clear

我需要创建2d模拟,但是在设置新的“框架”时,不会清除旧的框架。

我想让一些圈子在竞技场中移动,每个循环都应删除旧的圈子,并产生新的圈子。 一切正常,但是旧的没有清除,仍然可见,这就是我需要更改的地方。

游戏循环

@Override
public void run() {

    while(true){

        try {
            Thread.sleep(10);
            for(Schleimpilz s : this.pilz){
                s.move();
                fenster.getArena().repaint();;
                fenster.getArena().paintPilz();

            }


        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

多数民众赞成在竞技场类(扩展Jpanel),其中Jpanel需要清除

public void paintPilz() {

    //how to clear the old values here?
    super.paintComponent(graphics);  
    setBackground(Color.WHITE);

    for(Schleimpilz s : schleimpilz){

        printNewSchleimpilz(s.getLocX(), s.getLocY());

    }
}

您应该在paintComponent方法中进行所有渲染。 这是删除旧形状(重新绘制)的方法。

要制作动画/创建新圈子,您应该使用javax.swing.Timer而不是Thread.sleep

new Timer(10, new ActionListener() {
                 s.move();
                fenster.getArena().repaint();
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM