首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 笔记本电脑 | 北大青鸟 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Linux频道
中国IT教育
Google
首页 资讯动态 认证考试 新手入门 核心技术 高级技术 J2EE J2ME Java&XML 开源技术 其他技术 RSS订阅 论坛 专题
您现在的位置: 中国IT实验室 >> Java >> 高级技术 >> 多线程 >> 正文

线程控制动画


  线程是程序的一部分,是系统调度的基本单位。线程是控制动画的理想选择。将动画的工作放在线程上,可以释放出程序的其他部分来处理别的任务。
  线程的现实是通过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 );
  }
  }
  
【责编:admin】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·算法分析与设计之五大常用算法
 ·开发必备 漫谈Java加密保护
 ·嵌入式开发--ARM技术专题
 ·C/C++指针,认真了解,灵活运用
 ·.NET开发:C#实用基础教程
 ·软件测试工具QTP学习专题
 ·嵌入式开发单片机解决方案专题
 ·Java开发环境 Greenfoot 程序员手册
 ·C++对象布局及多态实现的探索
 ·常见排序算法的实现
 今日更新
 社区讨论
 博客论点
 频道精选
 Java 频道导航