已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
package multimediademo;import .*;import java.applet.*;import java.applet.Applet;import java.awt.image.*;import java.awt.*;import multimediademo.ImageFilter;import javax.swing.*;/* * Title: * Description: * Copyright: Copyright (c) 2003 * Company: * author not attributable * version 1.0 */public class DemoThread extends Thread /*类变量* /四个私有变量:滚动面板对象、图像类对象、图形对象和动画类型值 private JScrollPane m_scroll; private Image sourceImage, filteredImage; private Graphics m_graph; /1表示缩放平移动画,2表示不擦除平移动画,3表示淡入淡出动画 private int m_demoType; /申明一个图像过滤器 /ImageFilter imageFilter; /定义初始点 int startX = 50; int startY = 50; boolean REPAINT_MARK; int imageWidth,imageHeight; int panelWidth,panelHeight; int m_imageWidth,m_imageHeight; int STEP = 10; /*类方法* /默认构造函数 public DemoThread() /重载构造函数 public DemoThread(Image image,JScrollPane scrollPanel,int demoType) /给私有变量赋值 sourceImage = image; filteredImage = image; m_scroll = scrollPanel; m_demoType = demoType; /获取图形对象 m_graph = m_scroll.getGraphics(); /获取面板对象和图像的尺寸 imageWidth = filteredImage.getWidth(Component)m_scroll); imageHeight = filteredImage.getHeight(Component)m_scroll); panelWidth = m_scroll.getWidth(); panelHeight = m_scroll.getHeight(); /重载线程操作函数 public void run() initializeRun(); /moveDirect表示图像水平移动的方向:取true表示由左向右移动,false则表示相反的方向 boolean moveDirect = true; while(true) /画动画的第一副图像 if(!REPAINT_MARK) m_graph.drawImage(filteredImage,startX,startY,m_imageWidth,m_imageHeight,m_scroll); try Thread.sleep(1000); catch(InterruptedException e) REPAINT_MARK = true; /画动画的其他图像: /m_demoType表示动画类型,1表示缩放平移动画,2表示不擦除平移动画,3表示淡入淡出动画 else switch (m_demoType) /水平移动缩放动画 case 1: if(moveDirect) /图像由左向右移动并缩小 m_graph.clearRect(startX, startY, m_imageWidth, m_imageHeight); startX += STEP; /判断动画移动是否反向 if (startX + m_imageWidth) panelWidth) startX -= STEP; moveDirect = false; m_graph.clearRect(startX, startY, m_imageWidth, m_imageHeight); try Thread.sleep(1000); catch(InterruptedException e) else m_imageWidth = (int) (m_imageWidth * 0.9); m_imageHeight = (int) (m_imageHeight * 0.9); startY = (panelHeight - m_imageHeight) / 2; m_graph.drawImage(filteredImage, startX, startY, m_imageWidth, m_imageHeight, m_scroll); /图像由右向左移动并放大 else m_graph.clearRect(startX, startY, m_imageWidth, m_imageHeight); startX -= STEP; /判断动画移动是否反向 if(startX 10) moveDirect = true; startX += STEP; m_graph.clearRect(startX, startY, m_imageWidth, m_imageHeight); else m_imageWidth = (int) (m_imageWidth / 0.9); m_imageHeight = (int) (m_imageHeight / 0.9); startY = (panelHeight - m_imageHeight) / 2; m_graph.drawImage(filteredImage, startX, startY, m_imageWidth, m_imageHeight, m_scroll); break; /不擦除平移动画 case 2: /不擦除显示动画 if(moveDirect) STEP = m_imageWidth + 10; startX += STEP; if ( (startX + m_imageWidth) = panelWidth) m_imageWidth = (int) (m_imageWidth * 0.9); m_imageHeight = (int) (m_imageHeight * 0.9); startY = (panelHeight - m_imageHeight) / 2; m_graph.drawImage(filteredImage, startX, startY, m_imageWidth, m_imageHeight, m_scroll); else startX -= STEP; moveDirect = false; /逐一擦除图像 else m_graph.clearRect(startX-10,startY-10,m_imageWidth+15, m_imageHeight+15); m_imageWidth = (int) (m_imageWidth / 0.9) ; m_imageHeight = (int) (m_imageHeight / 0.9); startY = (panelHeight - m_imageHeight) / 2; STEP = m_imageWidth + 10; startX -= STEP; if(startX 200) m_imageWidth = 200; if(m_imageHeight 200) m_imageHeight = 200; /m_demoType表示动画类型,1表示缩放平移动画,2表示不擦除平移动画,3表示淡入淡出动画 switch(m_demoType) case 1: startX = 10; startY = (panelHeight - m_imageHeight)/2; STEP = 50; break; case 2: startX = 10; startY = (panelHeight - m_imageHeight)/2; break; /* case 3: imageFilter = new ImageFilter(); m_imageWidth
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业服务标签应用方案
- 企业风险上报方案
- 初中数学问题链教学落地实施方案
- 2026学年浙江省嘉兴市二年级语文期末高分通关提优特训题(详细参考解析)详细答案和解析
- 2026学年福建省龙海市二年级语文期末模考提优特训题(详细参考解析)详细答案和解析
- 2025年西安南关医院医护人员招聘笔试试题及答案详解
- 2026年广州港港湾医院医护人员招聘笔试备考题库及答案解析
- 2026年天津市东环医院医护人员招聘笔试备考题库及答案解析
- 2025年潍坊市立第二医院医护人员招聘笔试试题及答案详解
- 2025年西安市莲湖区红庙坡医院医护人员招聘笔试题库及答案详解
- 租电瓶车合同协议书范本
- 电商和厂家供货合同协议
- 引导接车课件
- 【MOOC】国际名酒知识与品鉴-暨南大学 中国大学慕课MOOC答案
- HG/T 4339-2024 机械设备用涂料(正式版)
- 唐诗宋词人文解读智慧树知到期末考试答案章节答案2024年上海交通大学
- 完美着装智慧树知到期末考试答案章节答案2024年武汉纺织大学
- 小学科学常考的38个实验及结论
- 宁波外国语学校小升初入学考试(附带答案)
- 2024届河北省石家庄市第四十中学数学七下期末检测试题含解析
- 数学与人体解剖学的结合课件
评论
0/150
提交评论