- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章多媒体与多线程剖析
多媒体与多线程 * // 画时针 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
您可能关注的文档
- 第10章-FIR数字滤波器的设计剖析.ppt
- 第1.0章可编程控制器=前言=低压电器剖析.ppt
- 第10章-线程剖析.ppt
- 第10章IO流与文件剖析.ppt
- 第10章MATLAB图形句柄剖析.ppt
- 第10章Hibernate对持久化对象的操作剖析.ppt
- 第10章MDI窗体和菜单剖析.ppt
- 第10章IPv6剖析.ppt
- 第10章Java图形界面剖析.ppt
- 第10章SQLServer安全管理剖析.ppt
- 2025四川天府银行社会招聘备考题库(攀枝花)含答案详解(最新).docx
- 2025四川银行首席信息官社会招聘备考题库及完整答案详解1套.docx
- 2025四川天府银行社会招聘备考题库(攀枝花)带答案详解.docx
- 2025四川天府银行社会招聘备考题库(成都)含答案详解(a卷).docx
- 2025四川广元市利州区选聘社区工作者50人备考题库及答案详解(基础+提升).docx
- 2025天津银行资产负债管理部总经理或副总经理招聘1人备考题库含答案详解(典型题).docx
- 2025四川天府银行社会招聘备考题库(西充)附答案详解(考试直接用).docx
- 2025年中国民生银行南宁分行招聘2人备考题库及答案详解(全优).docx
- 2025天津银行高级研究人才招聘备考题库附答案详解(达标题).docx
- 2025大连银行营口分行招聘2人备考题库及参考答案详解一套.docx
原创力文档


文档评论(0)