动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   程序开发 → 阅读文章

 线程控制动画

作者来源: 
阅读 数 623 人次 , 2006-4-28 9:56:00 

 


线程是程序的一部分,是系统调度的基本单位。线程是控制动画的理想选择。将动画的工作放在线程上,可以释放出程序的其他部分来处理别的任务。
线程的现实是通过java.lang中的Thread类,要使某一个类能使用线程,必须实现Runnable接口,该接口包含了唯一一个方法run()。run()方法是线程类的核心,--------动画程序中产生运动。通过调用线程的start ()方法,致使run()方法被调用。下边这个程序描绘了一个运动中的圆。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Cartoon extends JApplet implements Runnable
{
Graphics screenBuffer = null;//创建图形缓冲区
Image screenImage = null;
private Thread runner;
private int x = 5;
private int move = 1;

public void init ( )
{
screenImage = createImage ( 230, 160 );
screenBuffer = screenImage.getGraphics ( );
}
public void start ( )
{
if (runner == null)
{
runner = new Thread( this );
runner.start();
}
}
public void run( )
{
Thread circle = Thread.currentThread ( );
while ( runner == circle )//指向同一对象,便开始运行
{
x += move;
if ( ( x > 105 ) || ( x < 5 ))
move *= -1;
repaint ( );
}
}
public void drawCircle( Graphics gc )
{
Graphics2D g2D = ( Graphics2D ) gc;
g2D.setColor ( Color.blue );
g2D.fillRect ( 0, 0, 100, 100 );
g2D.setColor ( Color.yellow );
g2D.fillRect ( 100, 0, 100, 100 );
g2D.setColor ( Color.red );
g2D.fillOval ( x, 5, 90, 90 );
}
public void paint( Graphics g )
{
screenBuffer.setColor ( Color.white );
screenBuffer.fillRect (0,0,96,60);
drawCircle ( screenBuffer );
//将缓冲区的图像复制到主缓冲区中
g.drawImage ( screenImage, 130, 100, this );
}
}


  
 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:命名你的线程和查看系统
· 下一篇:用Java实现多线程服务器程序
· Java学习:一个压缩文件的例子
· 软件项目如何进行需求分析
· 循序渐进学习Power Builder 6.0
· 深入研究Servlet线程安全性问题
· 系统构架设计应考虑的因素


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077