电工与电子技术电子商务电子课件JAVA语言程序设计java09ppt_第1页
电工与电子技术电子商务电子课件JAVA语言程序设计java09ppt_第2页
电工与电子技术电子商务电子课件JAVA语言程序设计java09ppt_第3页
电工与电子技术电子商务电子课件JAVA语言程序设计java09ppt_第4页
电工与电子技术电子商务电子课件JAVA语言程序设计java09ppt_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电子课件JAVA语言程序设计java09第9章Java Applet程序设计9.1HTML与WWW9.2Java Applet基本概念9.3Java Applet程序的编写和运行9.4Java Applet程序的多媒体9.5Java Applet的交互功能与通信功能本章目录9.1HTML与WWW一、HTMLHTML(Hyper Text Markup Language,超文本标记语言)的思想来自于二十世纪70年代中期由IBM公司的Charles Goldfarb所发明的现已成为国际标准的另外一种标记语言SGML(Standard Generalized Markup Language,标准通用

2、化标记语言)。HTML是一种纯文本格式的符号集合,是Web上的所有文档的格式化,是一种用来制作超文本文档的简单标记语言,用HTML编写的超文本文档称为HTML文档。它能独立于各种操作系统平台,WWW上面的可单击超级链接、图形图像、多媒体文档、表单等都是用HTML符号集描述的。目前的各种浏览器都可以将HTML标记文档解释成图形化的Web页面。二、WWWWWW(World Wide Web,万维网)是以超文本置标语言HTML与超文本传输协议HTTP为基础,提供面向Internet服务、具有一致的用户界面的信息浏览系统。正式定义是:“WWW is a wide-area hypermedia inf

3、ormation retrieval initiative to give universal access to large universe of documents”,即“WWW是一个广域的给出对海量文档资料的通用访问的超媒体信息检索”。理论上说来,WWW包括所有的Web站点、Gopher信息站、FTP档案库、Telnet公共存取帐号、News新闻讨论区以及资料库。所以WWW可以说是当今全世界最大的电子资料世界。主页是在WWW基础之上定义的个人或机构的基本信息页面,用户通过主页可以访问有关的信息资源。WWW的发展也是经过了几个阶段:第一阶段:基于字符的超文本。第二阶段:基于图形的静态HT

4、ML。第三阶段:动态页面。第四阶段:交互式HTML。三、URI与URLHTTP协议采用URI(Uniform Resource Identifier,统一资源标识符)来标识Internet上的数据,而用于指定文档资料在Internet上的确切位置的URI称为URL(Uniform Resource Locator,统一资源定位器)。URI是能标识资源的具有特定语义的字符串。URL是指向文件、目录、HTML文档的指针,是在Internet上定位和解释信息的关键,是描述Web资源位置及其内容的标准方法。标准的URL由三部分组成:服务名:/主机名:(端口号)/文档。URL的六种类型:HTTP URL

5、:是Internet上最常见的URL;FTP URL:文件传输协议,用以传输较大的文件;TELENET URL:允许远程登录到一个计算机系统上,将本机作为终端;NEWS URL:新闻服务与电子公告;MAIL TO URL:电子邮件;FILE URL:在自己的计算机上定位文件。四、XMLXML在概念上类似于HTML,XML语言包含自定义的一组标记定义,这些标记也与HTML标记非常相似,也是在用文字编辑器创建的文档中定义的,其元素同样是用标记和属性定义的。与HTML相比,XML的明显的差别或者是优势在于其语法的极其严谨,它要求浏览器拒绝所有不符合语法的文档而只接纳合格的文档。9.2Java App

6、let基本概念本章介绍Java语言的另一种程序,即Java小应用程序Applet。一、什么是Java Applet?Java Applet是Java语言与WWW相结合的产物,是一种被嵌入到Web页中,由Java兼容浏览器执行的小程序,可以生成具有动态效果和交互功能的Web页,其主要特点有: 绘图功能 动态效果 动画和声音 交互功能 窗口环境 网络交流能力Java Applet是Java语言程序的一种特殊形式,从语法上看,Java Application的语法完全适用于Java Applet,包括语句、方法和图形界面设计技术等,二者之间的差异在于Java Applet是在浏览器环境下运行的。二、

7、Java Applet的运行环境和运行方式Java Applet本身是一段Java程序,但它不能独立运行,需经过编译后成为字节码文件嵌入到HTML文本中,通过主页发布到Internet上。用户从网上访问主页打开HTML文本时,Applet被用户浏览器执行起来。Applet自身无法以命令行方式启动,需要依赖浏览器为其提供图形界面,并且要求浏览器必须是Java兼容浏览器才行。Java类库的java.applet包中定义了一个Applet类,Applet类被定义为面板Panel类的子类,是一个非独立的容器,必须被放到一个独立容器中才能执行。用户在编写Applet程序的时候,程序的主类必须被声明为继承

8、自Applet类。在使用AWT组件时,将主类声明为Applet类的直接子类;在使用Swing组件时,将主类声明为JApplet类的直接子类。JApplet类继承自Applet类,是Swing组件中的一个顶层容器。浏览器窗口正是充当了运行Applet程序并支撑Java Applet程序显示的独立容器,起到了支撑的作用。三、Java Applet的执行步骤和生命周期当Java兼容浏览器发现Web页中有Java Applet时,将通过网络从Applet宿主机上下载Java Applet程序的主类,并引入其他必要的类,随后在Java兼容浏览器中生成Java Applet主类的一个对象实例。同一Web页

9、上的不同Java Applet主类,以及不同Web页上的Java Applet主类都会生成不同的对象实例,运行在同一浏览器上的各个Java Applet程序具有独立的行为。Java兼容浏览器中内嵌了Java运行时系统。Java Applet的生命周期是指自Java Applet程序被下载直至它被系统回收所经历的历程。在这个历程中,有以下事件能够改变Java Applet的状态。下载Java Applet:可以产生一个Java Applet主类的实例,并对其进行初始化,启动Java Applet。离开或返回Java Applet所在的主页:离开网页或图标化浏览器窗口可使Java Applet停止

10、运行,返回主页或恢复浏览器窗口可使Java Applet程序重新启动。退出浏览器:退出浏览器将使Java Applet程序停止自身执行,并进行善后处理。四、Java Applet的安全机制由于Java Applet是通过网络传递并且要经过下载才能被执行的程序,令人非常容易想到安全问题,即病毒传播、系统破坏和通过网络泄露用户端的有关信息等问题,如编写恶意代码通过Java Applet程序盗取用户的保密信息并进行传播等。Java语言提供了一个SecurityManager类用来防止发生上述类似事件,它几乎可以控制Java虚拟机的所有系统级调用,这一整套用来防止各种不安全事件的安全机制被称为“沙箱”

11、安全机制。对于所运行的Java Applet程序有以下约束: Java Applet只能通过网络通讯将数据写入其宿主机上的应用程序中,由应用程序完成宿主机上的文件写; Java Applet不能通过套接字与非宿主机进行网络通讯; Java Applet不能在运行它的主机上进行正常的文件操作; Java Applet不能调用运行主机上的任何程序。9.3Java Applet程序的编写和运行一、Java Applet的主要行为Java Application程序在执行时必须首先调用main()方法,进入main()方法之后即开始生成各种对象实例,并通过对象实例调用各个方法成员,待每一个执行过程结束

12、之后,再依次返回main()方法,这样main()方法成为Java Application程序的执行入口和出口。Java Applet程序的执行过程与Java Application程序的执行过程有很大的不同,它不包含main()方法,也没有类似的明确的入口与出口。Java Applet程序也可以包含若干个类,其中也有一个主类,其程序内容和执行过程则是通过主类中的以下几个方法实现的。初始化方法init():此方法是在Java Applet被浏览器下载时被执行的,在Java Applet的整个生命周期中只须执行一次。启动方法start():系统在调用完init()方法之后将自动调用start()

13、方法,此后每当返回Java Applet所在的主页或是恢复浏览器窗口时系统都将调用一次start()方法。所以,该方法在Java Applet程序的整个生命周期中可能会执行很多次。该方法中包含Java Applet的主体内容,格式如下:public void start() 执行语句停止方法stop()。每当离开Java Applet程序所在的网页或图标化浏览器窗口时,系统都将调用一次stop()方法,其作用是停止正在运行的Java Applet程序。与start()方法一样,stop()方法也可以被多次调用,并且调用停止方法的前提是启动方法已经被调用过一次,而在调用停止方法之后,还可以通过调

14、用启动方法恢复程序的执行。这两种方法是穿插调用的,每一次对stop()方法的调用都是在一次对start()方法的调用之后。停止方法的格式如下:public void stop() 执行语句删除方法destroy():当浏览器即将关闭时,系统将调用destroy()方法杀死所有Applet线程、释放系统资源,并进行善后处理。该方法在Java Applet程序的整个生命周期中只需执行一次,是Java Applet程序在整个生命周期中调用的最后一个方法。其格式如下:public void destroy() 执行语句init()方法start()方法stop()方法destroy()方法上述4个方法

15、都是在Applet类中首次定义的,称为Java Applet程序的生命周期方法。下图对初始化方法、启动方法、停止方法和删除方法的执行流程进行了一个简单的说明。绘制方法paint(Graphics g):当Applet程序需要在界面上显示某些文字、图形、图像、色彩等信息时,就需要调用此方法来完成绘制任务。有时,为了使程序对界面上的更新进行快速响应,还需要多次调用此方法。这个方法是在Container类中首次定义的,Applet类是通过继承而得到该方法的,其格式如下:public void paint(Graphics g) 执行语句二、Java Applet程序的编写程序员在进行Java App

16、let程序编程的时候主要要完成三件事:第一是把Java Applet程序的主类声明为Applet类的直接子类或者是JApplet类的直接子类;第二是把要执行的相关代码通过重写初始化方法、启动方法、停止方法、删除方法和绘制方法等方法写入Java Applet程序中;第三是如果需要的话还要再写出Java Applet程序的主类的其它方法成员及其它的非主类。由于Java Applet程序的主类必须要被声明为Applet类或JApplet类的直接子类,这样,Java Applet程序的主类就不能再继承Applet类或JApplet类以外的类。在Java Applet程序中,语句、语法、对象实例等等语言

17、内容与编写Java Application程序是一样的,在其所包含的类中可以根据需要实现各种接口,也可以使用图形用户界面设计技术。用户通常会根据程序的实际情况重写几个主要的方法成员。在大多数情况下,仅需重写init()方法和start()方法。在需要进行界面操作时,需要重写paint()方法。而stop()方法需要重写的情形较少,并且除非特殊情况,很少重写destroy()方法。带有按钮的具有嵌套布局的Applet程序的简单例子。/Example 1 of Chapter 9import java.awt.*;import javax.swing.*;public class AppletDe

18、mo1 extends JAppletJPanel p;JButton b1,b2;public void init()Container container = getContentPane();container.setLayout(new BorderLayout();p = new JPanel();p.setLayout(new GridLayout( 3, 3, 5, 5 );b1 = new JButton4;b2 = new JButton9;for(int i = 0; i4; i+)b1i = new JButton(Outer+i);for(int i = 0; i9;

19、i+)b2i = new JButton(Inner+i);p.add( b2i );container.add( b10 , BorderLayout.NORTH );container.add( b11 , BorderLayout.SOUTH );container.add( b12 , BorderLayout.WEST );container.add( b13 , BorderLayout.EAST );container.add( p , BorderLayout.CENTER ); 三、Java Applet程序的运行Java Applet程序的运行有两种方式:一种是使用和标记把

20、Java Applet程序嵌入HTML文档中,作为Web页的一部分,由Java兼容浏览器运行;另一种是使用Java SE开发工具中提供的简易Java Applet程序运行器Appletviewer运行。Applet标记当一个完整的Applet程序完成以后,就应当运行它。在运行Applet程序时需要将这个Applet程序编译成字节码文件,然后嵌入到HTML文本中作为Web页的一部分发布到Internet上。嵌入Web页的办法是在HTML文本中采用Applet的有关标记。HTML文本分为HEAD部分和BODY部分,Applet标记和指明所描述的内容是一个Applet,这一对标记不是标准的HTML标

21、记,只有Java兼容浏览器才支持它,使用时这一对标记要放在文本的BODY部分,大致格式如下 . 在“”标记和“”标记中可以给出多种可以描述Applet程序的属性:archive = archiveList,描述存档文件。code = AppletFile.class,这个属性是必须给出的,代表编译好的Applet程序的字节码文件的文件名,应该是一个相对地址。width = pixel和height = pixel,这两个属性也是必须要给出的,描述Applet程序显示的初始宽度和高度,此区域仅是Applet程序显示的范围,不包括显示所用的窗口的标题和边框。codebase = codebaseU

22、RL,代表Applet程序的字节码的基地址,即包含着Applet代码的目录,默认为当前HTML的URL地址。alt = alternateText,代表替代文本,即当浏览器不能正确显示Applet或不支持Applet时,将会显示该属性设置的文本。name = AppletInstanceName,这个属性为当前Applet设置了一个名字,以便同一个主页上的其它Applet能够发现和识别它从而实现相互之间的通讯。align = alignment,指定Applet显示区的对齐方式,取值范围为:left,right,top,texttop,middle,absmiddle,baseline,bot

23、tom,absbottom。vspace = pixel和hspace = pixel,指定Applet显示区的纵向和横向边缘空出的宽度。,这个标记是在“”标记与“”标记之间的一个属性,可以写上多条,其中的属性名和属性值可以被Applet类中的getParameter()方法所获取。Appletviewer在Java SE开发工具中提供了一个简易的Applet运行器Appletviewer,可以替代浏览器用来运行和调试Applet。Appletviewer可以以命令行方式执行,可以略去HTML文本中的其他内容而仅仅显示Applet。命令行执行格式为Appletviewer -debug url

24、s/htmlname用这个工具可以快速观察所编写的Applet程序的图形界面和运行效果,也可以从网上的HTML文本中迅速找到Applet。四、Applet类与JApplet类Applet类定义在java.applet包中,JApplet类定义在javax.swing包中,JApplet类是Applet类的直接子类。从语法上来说,把Java Applet程序的主类声明为Applet类或JApplet类的直接子类都是可以的。二者之间的差别在于,把Java Applet程序的主类声明为JApplet类的直接子类可以使所编写的Java Applet程序兼容Swing组件,其他方面的差别不大。除了上述几

25、个主要的方法成员,Applet类中还包括了一些常用的重要方法:getImage() /获取图像getAudioClip() /获取声音getAppletContext() /确定此applet 的上下文getAppletInfo() /获取当前applet 的信息getCodeBase() /获取当前applet 的字节码的URLgetDocumentBase() /获取嵌入了此applet 的HTML 文档的URLgetParameter() /返回HTML 标记中命名参数的值getParameterInfo() /返回此applet 理解的关于参数的信息resize(Dimension d

26、) /请求调整此applet 的大小play() /声音播放方法在JApplet类中,为了能够兼容Swing组件及支持Swing组件新增功能,增加了一些专门用来进行Swing组件操作的方法:createRootPane() /创建默认rootPanegetContentPane() /返回此applet 的contentPane 对象getJMenuBar() /返回此applet 的菜单栏设置getLayeredPane() /返回此applet 的layeredPane 对象getRootPane() /返回此applet 的rootPane 对象setContentPane() /设置c

27、ontentPane 属性setJMenuBar() /设置此applet 的菜单栏setLayeredPane() /设置layeredPane 属性setRootPane() /设置rootPane 属性remove() /从容器中移除指定组件9.4Java Applet程序的多媒体设计在Java Applet程序中,可以使用Java语言中的包括事件监听器在内的几乎全部GUI组件和工具来构造一个完整的界面。在Component类中定义了用于显示图形界面的3个方法,其原型如下:void paint(Graphics g)void repaint()void repaint(int x,int

28、 y,int width,int height)void repaint(long tm)void repaint(long tm,int x,int y,int width,int height)void update(Graphics g)在这里用到了Graphics类参数。Graphics类是一个用于处理各种图形对象的基本抽象类,定义在java.awt包中,是Object类的直接子类。在该类中定义了很多被称为绘图原语的方法成员,用来完成基本图形绘制和图像绘制,该类是绘图的关键。如果Java Applet程序中要进行图形化操作,则必须将该类用适当的方式引入。GUI绘图工作通常由一个GUI线

29、程来控制完成,该线程负责两种界面显示工作:一种是当一个界面刚刚生成,以及界面中有被遮挡和破坏的部分需要恢复时,系统将调用paint()方法;另一种是系统在更新显示内容并决定重画显示区域时,需要调用repaint()方法。paint(Graphics g)方法:paint()方法是绘图操作的具体执行者。在Component类中提供的该方法是一个空方法,因此只要在Applet中有任何图形方面的动作,paint()方法必须被重写,将具体的执行动作写入方法体中。paint()方法一般是Applet程序中必不可少的成员。update(Graphics g)方法:Component类中提供的该方法完成用背

30、景色填充当前组件,设置前景色,调用paint()方法等工作,作用是更新组件。通常情况下不重写该方法。repaint(long tm , int x , int y , int width , int height)方法:该方法的作用是重新绘图,当组件自身发生内容变化时被自动调用。该方法有4种形式的重载,一般也无需重写。当repaint()方法被调用时,它会调用update()方法,再由update()方法调用paint()方法来完成重画请求。一、图形绘制在Graphics类中定义了多个方法实现了绘图原语,用以绘制各种基本几何图形,如画线drawLine(),画矩形drawRect()、fill

31、Rect(),画立体矩形draw3DRect()、fill3DRect(),画椭圆drawOval()、fillOval(),画弧drawArc(),画多边形drawPolygon()、fillPolygon()等,利用这些方法成员可以绘制出用户所需的图形。在Graphics类中有两个方法getColor()和setColor(Color c)用于获取和设置颜色,还有两个方法getFont()和setFont(Font font)用于获取和设置字体。二、字符串绘制在Graphics类中定义了一个方法drawString(String str , int x , int y)可以在图形界面上绘制

32、字符串。其中,str代表字符串,x和y表示字符串左下角的坐标。三、图像绘制Java类库中定义了一个java.awt.Image抽象类,在程序中每个具体的图像文件都被看做是该类的一个对象实例。Java语言中支持GIF、JPEG、PNG格式的图像,Applet类方法public Image getImage(URL url);public Image getImage(URL url , String name);可以得到一个包含图像文件的Image类对象,之后可以用Graphics类方法drawImage()实现图像的显示绘制。除此之外,也可以使用ImageIcon类实现图像的绘制。由于Imag

33、e类是抽象类,不能直接初始化,必须用getImage()方法获取实例,并用drawImage()方法绘制,而ImageIcon类可以直接用构造方法初始化,并用该类的方法成员paintIcon()方法绘制图像,相比之下,后一种方法用ImageIcon类绘制图像更方便一些。图形绘制、字符串绘制和图像绘制的有关语句在程序中都要写在Applet程序的paint()方法中。【例9.4】在Java Applet 程序中实现图形绘制、图像绘制、字符串绘制【例9.5】在Java Applet 程序中实现徒手画复杂线2011年3月四、动画绘制Applet中实现动画的基本思路是通过在同一位置上按一定时间间隔显示连

34、续画面的方式实现动画功能,画面可以是图像,也可以是图形。实现动画的主要问题是控制好画面的刷新时间,一般认为,如果每幅画面的停留时间不超过1/25秒,人眼就不会感觉到有间断。一般取值在1/101/20秒之间,如果刻意追求动画效果也可以取1/8秒,连续画面可以取1/25秒。五、声音播放有两种可以在Java Applet程序中播放声音的方法:一种是利用AudioClip接口中的几个方法成员实现;另一种是利用Applet类中的play()方法实现。在java.applet包中定义了一个AudioClip接口,这是一个声音接口,声音文件可以看成是该接口的一个对象,其中的三个方法成员public void play() /播放声音public void loop() /循环播放声音public void stop() /停止播放声音可用来播放声音。在Applet类中定义了以下与声音有关的方法:getAudioClip(URL url) /返回由参数URL指定的AudioClipgetAudioClip(URL url, String name) /返回由参数URL和name指定的AudioClipplay(URL url) /播放在指定的绝对URL处的音频play(URL url, String name) /播放给定URL和与其相关的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论