gpt4 book ai didi

Java JPanel 清除

转载 作者:行者123 更新时间:2023-12-02 04:10:26 26 4
gpt4 key购买 nike

我需要创建一个二维模拟,但是在设置新的“框架”时,旧的“框架”不会被清除。

我希望一些圆圈在竞技场中移动,并且每个循环都应删除旧圆圈并生成新圆圈。一切正常,但旧的没有被清除并且仍然可见,这就是我需要改变的。

游戏循环

@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();
});

关于Java JPanel 清除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33848806/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com