1 / 14

北京航空航天大学出版社

北京航空航天大学出版社. Java 程序设计. 主讲教师:孙修东 联系方式: sunxdj@shafc.edu.cn. 目 录. 任务一 搭建环境(构建 Java 集成开发环境). 任务二 Java 欢迎你(开发简单 Java 应用程序. 任务三 小试牛刀(学习Java语言基础). 任务四 挑战选择(使用分支控制流程). 任务五 游戏人生(使用循环控制流程). 任务六 回归自然(创建、使用类和对象). 任务七 3G时代的消息传递 ( 定义和使用类方法 ). 任务八 保护你的隐私(封装的使用).

mingan
Download Presentation

北京航空航天大学出版社

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 北京航空航天大学出版社 Java程序设计 主讲教师:孙修东 联系方式:sunxdj@shafc.edu.cn

  2. 目 录 • 任务一 搭建环境(构建Java集成开发环境) • 任务二 Java欢迎你(开发简单Java应用程序 • 任务三 小试牛刀(学习Java语言基础) • 任务四 挑战选择(使用分支控制流程) • 任务五 游戏人生(使用循环控制流程) • 任务六 回归自然(创建、使用类和对象) • 任务七 3G时代的消息传递(定义和使用类方法) • 任务八 保护你的隐私(封装的使用) • 任务九 子承父业(继承和多态的使用) • 任务十 上帝万能之手(接口的使用) 2/14

  3. 目 录 • 任务十一 用数组存储信息(使用数组) • 任务十二 使用字符串进行交流(使用字符串) • 任务十三 防患于未然(捕获并处理异常) • 任务十四 主动出击(抛出异常) • 任务十五 认识Java Applet(Applet入门) • 任务十六 丰富多彩的Applet(在Applet中播放声音和显示图像) • 任务十七 进入Windows世界(设计图形用户界面) • 任务十八 布局规划(使用布局管理器) • 任务十九 事件委托处理(如何处理事件) • 任务二十 选择之道(使用选择控件和选择事件) 3/14

  4. 目 录 • 任务二十一 简明清晰的菜单(使用菜单和其他常用事件) • 任务二十二 访问数据(使用JDBC连接数据库) • 任务二十三 访问数据升级(数据库编程) • 任务二十四 文件管理(目录与文件管理) • 任务二十五 顺序进出之道(文件的顺序访问) • 任务二十六 随机进出之道(文件的随机访问) • 任务二十七 JAVA的分身术(创建和启动线程) • 任务二十八 线程的生命周期与优先级(线程的状态与调度) • 任务二十九 基于连接的通信(Java中的套接字Socket) • 任务三十 基于无连接的通信(Java中的数据报编程) 4/14

  5. 任务十六 丰富多彩的Applet(在Applet中播放声音和显示图像) 1 知识目标 AudioClip类;Image类。 2 能力目标 会使用AudioClip类在Applet中实现声音的播放;会使用Image类在Applet中显示图像。 5/14

  6. 内容提要 1 跟我做:会唱歌的图片 2 实现方案 3 代码分析 4 必备知识 5 动手做一做 6/14

  7. 16.1 跟我做:会唱歌的图片 • 任务情景 • 编写一个Java Applet程序AudioImage,运行程序时显示一张图像并循环播放一个声音文件。 • 运行结果 第1章目录 7/14

  8. 16.2 实现方案 • 解决步骤 • 步骤一:按照Applet程序的框架编写程序代码。 • 1.打开Eclipse,在study项目中创建包com.task16,再确定类名AudioImage,得到类的框架。 • 2.使用imports关键字加载其它包:ava.applet.*、java.awt.*和javax.swing.*。 • 3.按照Applet程序框架,在public class AudioImage后添加extends JApple语句 • 4.在下面一行输入定义AudioClip类和Image类的对象。 • AudioClip audio; • Image imgDisplay; • 5.在AudioImage类中输入两个方法的定义: • ⑴在int()方法中使用Image类的getImage方法将图像文件和Image对象联系起来,使用getAudioClip方法加载声音文件; • ⑵在paint()方法中使用Graphics类的drawImage方法显示Image对象,使用AudioClip对象的loop方法循环播放声音文件。 • 步骤二:编写AudioImage.html文件,使用Applet相关标记将Applet程序嵌入到HTML文件中。 • 步骤三:使用AppletViewer工具查看嵌入了Applet程序的HTML文件,或直接用Web打开HTML文件,运行Applet程序。 第1章目录 8/14

  9. 16.3 代码分析 • 程序代码 • Applet源文件代码: • /* • * AudioImage.java • * 任务十六 • * 会唱歌的图片 • */ • import java.awt.*; • import java.applet.*; • import javax.swing.*; • public class AudioImage extends JApplet{ • AudioClip audio; //定义类型为AudioClip的成员变量 • Image imgDisplay; //定义类型为Image的成员变量 • public void init(){ • imgDisplay=getImage(getCodeBase(),"1.jpg"); //装载图像 • audio=getAudioClip(getCodeBase(),"sample.mid"); • } 第1章目录 9/14

  10. 16.3 代码分析 • public void paint(Graphics g) { • g.drawString("Applet中播放声音和显示图像",30,30); //显示文本 • audio.loop(); • g.drawImage(imgDisplay,30,40,this); //显示图像 • } • } • 嵌入Applet的HTML文件代码:AudioImage.html • <applet code ="AudioImage.class" width=200 height=180> • </applet> 第1章目录 10/14

  11. 16.3 代码分析 • 应用扩展 • Applet中播放的声音和显示的图像也可以作为参数由HTML传递。若用HTML传递声音和图像的文件名参数,上述代码部分修改如下: • public class AudioImage2 extends JApplet{ • private String MyI,MyA; • AudioClip audio; //定义类型为AudioClip的成员变量 • Image imgDisplay; //定义类型为Image的成员变量 • public void init() { • MyI=getParameter("myImage"); • MyA=getParameter("myAudio"); • imgDisplay=getImage(getCodeBase(),MyI); //装载图像 • audio=getAudioClip(getCodeBase(),MyA); • } • ……(与“程序代码”一节中paint方法的代码相同) • } 11/14

  12. 16.4 必备知识 • 16.4.1 Applet中的声音处理 • Java可以支持的声音文件包括.wav、midi和.mp3,在Applet中处理声音文件可以先载入再播放。使用java.applet.Applet类中所定义的getAudioClip()方法可以载入一个声音文件,当声音文件被载入后,则可以使用相关方法对其进行操作,这些方法包括:play(),loop()或者stop()。 • 使用java.applet.AudioClip 类中的Play()方法可以播放一个己被载入的声音文件;loop()方法可以循环播放一个己被载入的声音文件;stop()方法可以停止播放声音文件。 • 16.4.2 Applet中的图像处理 • 目前Java所能处理的图像格式包括GIF和JPEG两种。Java把图像当做Image对象处理,先载入再显示。Applet装载图像时需要首先定义Image对象,格式为: • Image myImage; • 再使用getImage方法把图像文件和Image对象联系起来,其方法定义为: • myImage=getImage(URL url);或 • myImage=getImage(URL url,String name); 第1章目录 12/14

  13. 16.4 必备知识 • 第一种方式需指明图像文件的绝对URL地址。第二种方式有两个参数:第一个参数指明图像文件的基地址,可以通过对getCodeBase方法的调用返回Applet的URL地址,如www.sun.com/Applet,如果图像与包含Applet的HTML文件在同一目录下,还可以用getDocumentBase()获得Applet主页的基地址;第二个参数指定从URL装入的图像文件名。当Applet与图像文件处于同一目录下时,只需要图像的文件名;当图像文件位于Applet之下的某个子目录,图像文件名中则应包括相应的目录路径。例如:myImage=getImage(getCodeBase(),"image1.jpg"),myImage=getImage(getCodeBase(),"image/image2.jpg")。 • 用getImage方法把图像装入后,Applet便可用Graphics类的drawImage方法显示图像,格式如下: • g.drawImage(myImage,x,y,this); • 参数指明了待显示的图像、图像左上角的x坐标和y坐标以及this。编译之后运行Applet时,图像并非瞬间显示,这是由于程序不是在drawImage方法返回之前把图像完整地装入并显示的。drawImage方法创建了一个线程,该线程与Applet的原有执行线程并发执行,使图像边装入边显示,从而产生了不连续现象。为了提高图像显示效果,许多Applet都采用图像双缓冲技术,即先把图像完整地装入内存然后再显示在屏幕上。Applet还可以通过imageUpdate方法测定一幅图像已经装了多少在内存中。 第1章目录 13/14

  14. 16.5 动手做一做 • 一、实训目的 • 掌握在Applet中加入声音的方法;掌握在Applet中显示图片的方法。 • 二、实训内容 • 编写一个显示图像和播放声音的 Java Applet程序myAI,并编写对应的HTML代码。要求显示四张图片,并且声音文件播放一次。程序运行的结果如图16-2。 • 三、简要提示 • 通过继承JApplet类创建myAI类,定义类型为AudioClip和Image的成员变量,实现init()和paint()方法。可在init()方法中通过AudioClip类的getAudioClip方法加载声音,通过Image类的getImage方法加载图像。在paint()方法中显示图像和播放声音。 • 四、程序代码 • 参见本教材教学资源。 • 五、实训思考 • 1.如果通过对getDocumentBase()方法的调用返回Applet的URL地址,应该怎样修改程序? • 2.Applet类的play()方法与loop()方法播放声音的效果有何区别? 14/14

More Related