/* アニメーション実験 Ver 0.10 */ /* */ /* */ /* by Atsushi 2005/8/20 */ package animation; import java.awt.Component; import java.awt.Graphics; import java.awt.Image; import animation.animation.*; public abstract class Animation extends Object { /* --- Field --- */ protected Component component; protected Graphics g; protected Image baseImage; /* --- Constructor --- */ protected Animation(Image baseImage) { this.baseImage=baseImage; } /* --- Factory --- */ public static Animation getInstance(String type,Image baseImage) { if (type.equalsIgnoreCase("Basic")) { return new BasicAnimation(baseImage); } else if (type.equalsIgnoreCase("Basic2")) { return new BasicAnimation2(baseImage); } else if (type.equalsIgnoreCase("PreFiltering")) { return new PreFilteringAnimation(baseImage); } else if (type.equalsIgnoreCase("MemoryImageSource")) { return new MemoryImageSourceAnimation(baseImage); } else { throw new IllegalArgumentException(type); } } /* --- 画像生成 --- */ public Image createImage(Component component) { Image image; this.component=component; image=component.createImage( baseImage.getWidth(null),baseImage.getHeight(null)); g=image.getGraphics(); return image; } /* --- アニメーション --- */ public void startAnimation() { } public void stopAnimation() { } /* --- Finalizer --- */ public void finalize() throws Throwable { if (g!=null) g.dispose(); super.finalize(); } }