线程是程序的一部分是系统调度的基本单位线程是控制动画的理想选择将动画的工作放在线程上可以释放出程序的其他部分来处理别的任务 线程的现实是通过javalang中的Thread类要使某一个类能使用线程必须实现Runnable接口该接口包含了唯一一个方法run()run()方法是线程类的核心动画程序中产生运动通过调用线程的start ()方法致使run()方法被调用下边这个程序描绘了一个运动中的圆 import javaawt*; import javaawtevent*; import javaxswing*; public class Cartoon extends JApplet implements Runnable { Graphics screenBuffer = null;//创建图形缓沖区 Image screenImage = null; private Thread runner; private int x = ; private int move = ; public void init ( ) { screenImage = createImage ( ); screenBuffer = screenImagegetGraphics ( ); } public void start ( ) { if (runner == null) { runner = new Thread( this ); runnerstart(); } } public void run( ) { Thread circle = ThreadcurrentThread ( ); while ( runner == circle )//指向同一对象便开始运行 { x += move; if ( ( x > ) || ( x < )) move *= ; repaint ( ); } } public void drawCircle( Graphics gc ) { GraphicsD gD = ( GraphicsD ) gc; gDsetColor ( Colorblue ); gDfillRect ( ); gDsetColor ( Coloryellow ); gDfillRect ( ); gDsetColor ( Colorred ); gDfillOval ( x ); } public void paint( Graphics g ) { screenBuffersetColor ( Colorwhite ); screenBufferfillRect (); drawCircle ( screenBuffer ); //将缓沖区的图像复制到主缓沖区中 gdrawImage ( screenImage this ); } } |