资源预览内容
第1页 / 共29页
第2页 / 共29页
第3页 / 共29页
第4页 / 共29页
第5页 / 共29页
第6页 / 共29页
第7页 / 共29页
第8页 / 共29页
第9页 / 共29页
第10页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第9章 applet和多媒体,9.1 applet小应用程序 9.2 Java applet与application 9.3 显示图像 9.4 播放动画 9.5 播放音频文件 9.6 习题,9.1 applet小应用程序,9.1.1 类Applet 9.1.2 类JApplet 9.1.3 向applet传递参数,9.1.1 类Applet,applet是一种可以在因特网上传递,并在Web浏览器中运行的小应用程序。 每个Java application都必须有main方法,该方法在application运行时被系统自动调用。不过,applet不需要main方法,它的运行依赖于Web浏览器。 要编写applet,就必须继承自类Applet,并覆盖其中必要的方法。类Applet为applet提供了基本的框架结构,该框架结构是applet和其运行环境之间的标准接口。,9.1.1 类Applet(续),Web浏览器能够自动调用类Applet中的下列方法来控制applet小应用程序的生成和运行: 方法init 方法start 方法stop 方法destroy,9.1.1 类Applet(续),方法init: 第1次加载或重装某个applet时,Web浏览器首先会调用该applet的公用无参构造方法创建一个applet对象(因此,定义applet的类中必须有公用无参构造方法)。 创建applet对象并加载后,Web浏览器就会自动调用该对象中的方法init初始化applet。如果applet需要进行初始化操作,就应该覆盖这个方法。,9.1.1 类Applet(续),方法start: 调用方法init后,Web浏览器就会自动调用该方法开始运行applet。applet被再次访问时也需要调用方法start。如果希望每次包含当前applet的网页被访问时都执行某些操作,就应该覆盖这个方法。,9.1.1 类Applet(续),方法stop: 当从包含当前applet的网页转到其他网页时,Web浏览器会自动调用该方法终止applet的运行。如果希望每次包含当前applet的网页不可见时都执行某些操作,就应该覆盖这个方法。Web浏览器在调用方法destroy之前,总会调用该方法。 方法destroy: 当applet不再被需要时,Web浏览器会自动调用该方法以释放其所占系统资源。如果applet希望在被销毁前执行某些操作,就应该覆盖这个方法。,9.1.1 类Applet(续),9.1.2 类JApplet,applet程序应直接继承于JApplet。 JApplet是Applet的子类,其属于Swing组件。 applet是在Web浏览器中运行的,Web浏览器能自动将applet放置在它里面,并使它可见。 例9-1 编写applet程序,源代码,运 行,9.1.2 类JApplet(续),applet程序的字节码文件应嵌入网页。 ,9.1.3 向applet传递参数,在HTML文件向applet传递参数: 在applet中调用类Applet中下述方法读取: public String getParameter(String name) 例9-2 向applet传递参数,源代码,运 行,9.2 Java applet与application,applet与application的不同: 每次运行applet时都必须下载所有的相关文件,因此显示某些applet时可能需要花不少的时间。 为了保证网页运行的安全,applet无法访问本地文件,除非它通过了“数字签名”。,9.2 Java applet与application(续),Java applet与application之间大多可以相互转换,不过,编写一个既可作为applet运行,又可作为application运行的程序或许更有实际意义。一般来说,编写这样的程序并不难。 例9-3 程序作为applet和application运行,源代码,运 行,9.3 显示图像,9.3.1 使用类Applet 9.3.2 使用类ImageIcon 9.3.3 使用类MediaTracker跟踪图像下载,9.3.1 使用类Applet,类Applet中获取图像对象的方法: public Image getImage(URL url) public Image getImage(URL url, String name) 上述两个方法都用于从指定的URL地址获取图像对象。使用第1个方法时,必须将图像文件名包含进完整的URL地址;而使用第2个方法时,程序员指定的图像文件名与URL地址分开。URL是统一资源定位符,用于描述Internet上资源的位置,Java语言中定义了一个相应的类java.net.URL。,9.3.1 使用类Applet(续),applet只能从它或包含它的HTML文件所在的目录和子目录中读取文件。 为了取得当前applet或包含它的HTML文件的URL地址,可以调用类Applet中定义的下述方法: public URL getCodeBase() public URL getDocumentBase() 例: Image image1=getImage(getCodeBase(), “image/T1.gif“); /在当前applet所在目录的子目录image中装入指定图像文件 Image image2=getImage( getDocumentBase(),“T1.gif“); /在包含当前applet的HTML文件所在目录中装入指定图像文件,9.3.1 使用类Applet(续),显示图像的方法(类Graphics): public abstract boolean drawImage(Image img, int x, int y,ImageObserver observer) public abstract boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer) 例9-4 使用类Applet显示图像,源代码,运 行,9.3.2 使用类ImageIcon,类ImageIcon的构造方法: public ImageIcon(String filename) public ImageIcon(Image image) public ImageIcon(URL location),9.3.2 使用类ImageIcon (续),可以使用类java.lang.Class来获取相应的URL地址。 Java程序运行时,每载入一个类或接口,系统就会自动创建一个相应的属于类Class的对象(可以通过调用类Object中定义的方法getClass获取)。通过这个对象,可以访问该类的相关信息,也可以调用类Class中定义的方法getResource(String name)来获取指定文件name的URL地址。必须注意,文件name必须保存在相应类文件所在的目录或子目录中。,9.3.2 使用类ImageIcon (续),获取URL地址: URL url=this.getClass(). getResource(“T1.gif“); 例9-5 使用类ImageIcon显示图像,源代码,运 行,9.3.3 使用类MediaTracker跟踪图像下载,调用方法getImage时,系统会启动一个独立的线程来下载图像,这使得程序在下载图像的同时能执行其他操作。因此,正在下载的图像有可能只能部分地显示。为了解决这个问题,必须使用类MediaTracker编写相关的跟踪程序判断图像是否已经完全下载。 类ImageIcon会自动使用类MediaTracker监视图像的下载状态,并保证在完成下载之前程序不会试图使用该图像。,9.4 播放动画,控制动画播放的方法: 类java.swing.Timer 多线程 类Timer的对象能以指定时间频率触发ActionEvent事件,能够用作绘制动画中每个图像的触发器。 例9-6 使用类java.swing.Timer播放动画,源代码,运 行,9.4 播放动画(续),双缓冲技术: 首先创建一个后台的绘图缓冲区,然后在该缓冲区中绘制图像(图形),只有绘制工作完成后才一次性地将缓冲区中的图像(图形)在屏幕上显示出来。 JComponent组件在默认情况下都使用双缓冲技术绘图。,9.5 播放音频文件,Java 1.2之后不仅允许在applet中播放音频文件,还允许在application中播放。 Java 1.2之后可以播放的音频文件格式为WAV、AIFF、MIDI、AU、RMF等。,9.5.1 在applet中播放音频文件,类Applet中用于在applet中播放音频的方法: public void play(URL url) public void play(URL url,String name) 例: play(getDocument(),“T1.au“); 注意:使用上述方法播放音频文件时,该方法下载的音频文件在每次播放完毕后都会被丢弃。,9.5.1 在applet中播放音频文件(续),类Applet中用于获取AudioClip对象的方法: public AudioClip getAudioClip (URL url) public AudioClip getAudioClip(URL url,String name) AudioClip中控制音频文件播放的方法: public void play() public void loop() public void stop(),9.5.1 在applet中播放音频文件(续),每次调用方法loop或play播放音频文件时,系统都会为它们各自启动一个独立的线程。 方法stop只能停止当前音频文件的播放。 例9-7 在applet中播放音频文件,源代码,运 行,9.5.2 在application中播放音频文件,Java 1.2在类Applet中定义了一个静态方法: public static final AudioClip newAudioClip (URL url) /从指定的url位置取得AudioClip对象 例: URL url=this.getClass().getResource (filename); AudioClip audio=Applet.newAudioClip (url);,9.6 习 题,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号