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