1: import java.awt.*;
2:
3: public abstract class DBAnimationApplet
4: extends AnimationApplet {
5:
6: abstract protected void paintFrame(Graphics g);
7:
8: final public void update(Graphics g) {
9: if (doubleBuffered) {
10: if (im == null) {
11: im = createImage(d.width, d.height);
12: offscreen = im.getGraphics();
13: }
14: paintFrame(offscreen);
15: g.drawImage(im, 0, 0, this);
16: } else {
17: super.update(g);
18: }
19: }
20:
21: final public void paint(Graphics g) {
22: paintFrame(g);
23: }
24: final public void init() {
25: d = getSize();
26: initAnimator();
27: }
28:
29: protected void initAnimator() {}
30:
31: protected DBAnimationApplet(boolean doubleBuffered) {
32: this.doubleBuffered = doubleBuffered;
33: }
34:
35: protected DBAnimationApplet() {
36: this.doubleBuffered = true;
37: }
38:
39: protected boolean doubleBuffered;
40: protected Image im;
41: protected Graphics offscreen;
42: protected Dimension d;
43: }