网站大量收购独家精品文档,联系QQ:2885784924

第10章多媒体与多线程讲解.ppt

  1. 1、本文档共108页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多媒体与多线程 * // 画时针 int hLength = (int) (clockRadius * 0.5); int xHour = (int) (xCenter + hLength * Math.sin((hour % 12 + minute / 60.0)*(2*Math.PI / 12))); int yHour = (int) (yCenter - hLength * Math.cos((hour % 12 + minute / 60.0)*(2*Math.PI / 12))); g.setColor(Color.BLACK); g.drawLine(xCenter, yCenter, xHour, yHour); 多媒体与多线程 * public void setCurrentTime() { // 设置当前时间 // 用当前日期和时间构造日历 Calendar calendar = new GregorianCalendar(); // 设置当前时、分、秒 this.hour = calendar.get(Calendar.HOUR_OF_DAY); this.minute = calendar.get(Calendar.MINUTE); this.second = calendar.get(Calendar.SECOND); } public Dimension getPreferredSize() { return new Dimension(200, 200); } public static void main(String []args){ StillClock s = new StillClock(); //StillClock s = new StillClock(12,30,35); s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } 多媒体与多线程 * ClockAnimation.java (2)动态显示时间的ClockAnimation类的定义:该类的构造方法中定义了定时器对象timer,每隔1秒产生ActionEvent事件,调用actionPerformed方法对事件进行处理。在actionPerformed方法中设置当前时间,调用repaint()方法重画时钟,而repaint()方法会自动调用StillClock类中的paint方法。这样就能够动画显示时钟。。 多媒体与多线程 * ClockAnimation.java public class ClockAnimation extends StillClock { public ClockAnimation() { // 创建一个延时1秒的定时器,每秒重绘图形 Timer timer = new Timer(1000, new TimerListener()); timer.start(); // 启动定时器 } Private class TimerListener implements ActionListener { public void actionPerformed(ActionEvent e) { setCurrentTime(); // 设置当前时间StillClock类方法 repaint(); // 重画时钟,显示当前时间 } } 多媒体与多线程 * 10.5.2 使一系列图像成为动画 设计原理1:利用一系列相近的图片接连显示实现动画。利用线程的Run()方法中不断调用repaint()方法,repaint()方法自动调用update()方法将整个区域清除,之后paint()方法被调用,每次调用paint()方法都会绘制一幅图片。 多媒体与多线程 * 【例10.10】Candle.java 将若干幅相近的图片更替实现简单动画。 多媒体与多线程 * 【例10.10】Candle.java 多媒体与多线程 * 【例10.10】Candle.java //重写run方法, Run()方法中不断调用repaint()方法,repaint()方法自动调用update()方法将整个区域清除,之后paint()方法被调用,每次调用paint()方法都会绘制一幅图片。 public void run() { while (candle != null) { repaint(); try { // 休眠200毫秒,即每隔200毫秒切换一幅图片 Thread.sleep(200);} catch (InterruptedException e) { e.printStackTrace(); } } } 多媒体与多线程 * 【例10.10】Candle.java

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档