/* アニメーション実験 Ver 0.10 */ /* */ /* */ /* by Atsushi 2005/8/20 */ package animation; import java.applet.Applet; import java.awt.*; public class AnimationDemo extends Applet implements Runnable { /* --- Field --- */ private AnimationCanvas canvas; private Animation animation; private Thread loader; private boolean loaded; private int counter; /* --- 初期化 --- */ public void init() { setBackground(Color.white); loaded=false; loader=new Thread(this,"loader"); loader.start(); counter=0; } public void run() // Loader { MediaTracker tracker; Image baseImage,loadedImage; tracker=new MediaTracker(this); loadedImage=getImage(getCodeBase(),"animation/image/baseImage.jpg"); tracker.addImage(loadedImage,0); try {tracker.waitForAll();} catch (InterruptedException e) { e.printStackTrace(); } baseImage=createImage( loadedImage.getWidth(null),loadedImage.getHeight(null)); baseImage.getGraphics().drawImage(loadedImage,0,0,null); animation=Animation.getInstance(getParameter("method"),baseImage); canvas=new AnimationCanvas(animation); removeAll(); setLayout(new BorderLayout()); add("Center",canvas); // BorderLayout.CENTER animation.startAnimation(); loaded=true; validate(); } /* --- Applet の動作 --- */ public void start() { if (loaded) animation.startAnimation(); } public void stop() { if (loaded) animation.stopAnimation(); } /* --- 描画処理 --- */ public void paint(Graphics g) { if (loaded) { super.paint(g); } else { counter++; g.setColor(counter%2==0 ? Color.white : Color.black); g.drawString("Now Loading ...",30,30); repaint(counter%2==0 ? 400 : 1600); } } public void update(Graphics g) { paint(g); } }