[英]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.