Iam试图编写一个使用MVC模式动画对象(鱼,泡沫,鲨鱼等)的程序。如何绘制/重绘/动画(MVC)
该模型有一个链接列表与x和y值的对象。 视图有按钮来启动和停止动画。 我在视图的JFrame中添加了按钮和一个Jpanel。 012am但我不知道如何绘制/动画我的对象。该视图看起来是这样的:
public class View extends JFrame {
.
.
.
this.add(paintingSheet, BorderLayout.CENTER);
.
.
.
}
public class PaintingSheet extends JPanel {
private Image background;
public PaintingSheet() {
this.background = Toolkit.getDefaultToolkit().createImage("src/resources/background.jpg");
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(this.background, 0,0, this);
}
}
我的计划是让一个线程在控制器更新模型中的对象和重新油漆一下。 事情是这样的:
Model.updateOjects;
View.PaintingSheet.repaint();
Thread.sleep(x);
1)它允许调用线程重绘视图之外?
2)有没有更好的方法来做到这一点?
3)我如何使用模型中更新的LinkedList调用repaint?
4)我如何排除bein重新绘制的背景(它不移动)?
谢谢
无论何时调用paint方法,我都会建议对对象的当前位置进行计算。这将使您的动画更平滑,而不是重复更新模型。 (只有在计算可以真正快速完成的情况下才有可能) – slartidan