Java2程序设计基础第7章 创建JApplet网页小程序_第1页
Java2程序设计基础第7章 创建JApplet网页小程序_第2页
Java2程序设计基础第7章 创建JApplet网页小程序_第3页
Java2程序设计基础第7章 创建JApplet网页小程序_第4页
Java2程序设计基础第7章 创建JApplet网页小程序_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1、第七章 创建JApplet网页小程序,主要任务: 介绍Java常用的系统类,包括Java Applet、字符串类、输入输出流类、数学函数类、日期类、随机数类以及向量类等,本章主要内容,1.创建JApplet小应用程序 2.添加组件 3.组件布局管理 4.Java处理事件的方式 5.总结提高,7.1 创建JApplet小应用程序,Applet是一种特殊的Java程序,经过编译后可被嵌入到HTML文件中,并由Web浏览器内置的Java解释器执行。所有Applet都继承自同一个类:java.Applet.Applet,这个类是Java语言的基础类,有关Applet的所有特性都被定义在这个类中,7.1

2、.1 与JApplet生命周期相关的基本方法,JApplet具有如下4个阶段的生命周期: 初始化阶段:在浏览器中打开包含JApplet对象的页面时,创建并初始化其中的JApplet对象。 开始阶段:显示JApplet时,启动JApplet线程运行。 停止阶段:不显示JApplet时,停止 JApplet线程运行。 清除(销毁)阶段:在浏览器中关闭页面窗口时,销毁JApplet对象,JApplet类常用的6种方法,初始化init 开始运行start 停止运行stop 清除destroy 画出(显示)paint 刷新repaint,7.1.2 通过HTML网页给JApplet传递参数,JApple

3、t类接收HTML传递参数的方法 JApplet类是通过调用getParameter方法接收HTML传递的参数。getParameter方法的参数必须和HTML中由name指定的参数名相对应,由HTML文件指定参数值value。例如getParameter(message),接收HTML文件中name=message定义的参数,其值value=参数传递示例,数据类型转换,HTML文件中的参数值都被定义为字符串数据类型,而且加引号也可不加引号。 在Java程序中如果需要得到数值型参数,对接收的字符串数据要进行转换,通过整型数类Integer的parseInt静态方法可将字符串数据转换为整型数据。如

4、: Integer.parseInt(getParameter(yPos,HTML向Java程序传递参数的方法,HTML语言有一个标记,通过其属性可以指定嵌入的Java程序的有关内容。 如果需要向JApplet传递参数,可通过子标记及属性来指定,属性name用来定义参数名,value用来定义参数值,7.1.3 HTML的Applet标记及属性,1.标记及属性 标记与属性的语法格式为: alternateHTML,2.标记的属性含义,code用来指定Applet字节码文件名,可省略扩展名。 width和height用来指定Applet显示区域的大小,以像素点为计量单位。 codebase用来指定

5、Applet字节码文件路径。alt用来指定替换显示的文本内容。name用来指定Applet的实例化对象名。 align用来指定Applet在浏览器窗口中的对齐方式。 vspace和hspace用来指定Applet四周的间隔,以像素点为计量单位。vspace指定上下间隔,hspace指定左右间隔。 param标签包含两个参数:name指定参数名,value指定参数值。 alternateHTML用来指定可替换的HTML代码,3.通过标记自定义参数名与参数值 在HTML文件中通过标记可以自定义参数名与参数值,例如实例7.3中定义了3个参数text、size和color,并分别给出对应值。text指

6、定显示文本,size指定文本的字号大写,color指定文本的颜色。 4.数据类型的转换,7.2 添加组件,组件(JComponent)是构成图形用户界面的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。组件分为两类:一类是可以容纳其他组件的容器组件,例如Applet界面、JApplet界面、面板、窗口等。一类是基本组件,例如标签、按钮、文本框等,它们需要加入到容器组件中才能使用,7.2.1 面板组件,1)Container类的内容面板对象 创建内容面板对象c可以通过getContentPane()方法直接创建。 (2)JPanel类的普通面板对象 普通面板对象p是通过JPan

7、el类创建的,面板中组件布局默认也是边界布局(BorderLayout),通过setBounds(x,y,w,h)网格布局管理器可以指定其位置与大小。 (3)面板的作用 面板与其他顶层容器不同,它是一个中间容器,它即是容器又是组件,它可以容纳其他组件,也可以添加到其他容器之中。一个窗口中可以添加多个面板对象分门别类的在其上添加其他组件,7.2.2 面板组件,1)标签的构造方法 JLabel()方法用来创建一个没有显示内容的标签对象。 JLabel(String text) 方法用来创建一个显示文字的标签对象,默认为居中排列。 JLabel(String text, int alignment)

8、 方法除了用来创建一个显示文字为text的标签对象外,并指定其排列方式。 JLabel(Icon image) 方法用来创建一个显示为图标的标签对象,默认为居中排列。 JLabel(Icon image, int alignment) 方法用来创建一个显示为图标的标签对象,并指定其排列方式,2)标签的常用成员方法 void setText(String label) 设置显示的字符串。 String getText() 返回当前显示的字符串。 void setAlignment(int alignment) 设置对齐方式。 void setFont(Font f) 设置显示的字符串的字体。 v

9、oid setBackground(Color c) 设置显示的字符串的背景颜色。 void setForekground(Color c) 设置显示的字符串的颜色,7.2.3 按钮组件,Swing包中提供了标准按钮(JButton)类,按钮对象可以带有文字标题与图标。 (1)准备图片文件 编写本应用程序要在“程序/图片”目录下先保存一个名称为2.gif的图片文件。 (2)按钮的构造方法 JButton() 创建一个没有标题的按钮。 JButton(String text) 创建一个带标题的按钮。 JButton(Icon image) 创建一个有图标的按钮。 JButton(String t

10、ext,Icon image) 创建一个有标题、有图标的按钮,7.2.4 文本框组件,使用文本框的不同构造方法,可以创建出不同类型的文本框,常用的构造方法如下: (1)JTextField() 创建一个默认宽度的文本框。 (2)JTextField(int n) 创建一个指定宽度的文本框。 (3)JTextField(String text) 创建一个带有初始文本内容的文本框。 (4)JTextField(String text, int n) 创建一个带有初始文本内容并具有指定宽度的文本框,7.2.5 文本区组件,1)文本区的构造方法 JTextArea() 创建默认大小的文本区。 JTex

11、tArea(int rows, int columns) 创建指定行和列数的文本区。 JTextArea(String text) 创建带有初始文本内容的文本区。 JTextArea(String text, int rows, int columns) 创建带有初始文本内容并具有指定行列数的文本区,2)文本区的常用方法 public void append(String str) 在文本区尾部添加文本。 public void insert(String str, int pos) 在文本区指定位置插入文本。 public void setText(String t) 设定文本区内容, 会将

12、原来的内容清除。 public int getRows() 返回文本区的行数。 public void setRows(int rows) 设定文本区的行数。 public int getColumns() 返回文本区的列数。 public void setColumns(int columns) 设定文本区的列数。 public void setEditable(boolean b) 设定文本区的读写状态,7.2.6 单选按钮组件,使用Java提供的复选框(JCheckbox)组件可以让用户可以一次做出多项选择。 (1)单项按钮组件的构成 单项按钮组件包含一组按钮对象,按钮对象处于选中或未选

13、中两种状态。用户通过按钮只能选择其中的一个选项。单项按钮由JRadioButton类与ButtonGroup类的对象共同构成。JRadioButton单选用于设置各个单选选项,ButtonGroup对象用于维护一组互斥单选选项的关系。 (2)未实现的功能,7.2.7 复选框组件,使用Java提供的复选框(JCheckbox)组件可以让用户可以一次做出多项选择,7.2.8 下拉列表组件,下拉列表(JComboBox)与单选按钮类似,同样存在选中或未选中两种状态。使用下拉列表可以让用户在列表框的多个选项中选择一个选项。列表框的所有选项都是可见的,如果选项数目超出了列表框可见区的范围,则列表框右边会

14、出现一个滚动条。 通过下拉列表对象的方法setSelectedIndex(0)可以设置第一个选项为默认选项,7.3 组件布局管理,使用Java提供的复选框(JCheckbox)组件可以让用户可以一次做出多项选择,7.3 组件布局管理,组件是由布局管理器对象来管理的,通过容器的setLayout方法可以调出布局管理器来确定组件的存放位置。 本节的内容主要介绍如何使用布局管理器确定存放在容器中组件的摆放位置。注意本节中使用的窗口对象都是在自定义类中直接创建的(同样可以通过JF0类来创建,那样可以统一主界面,7.3.1 顺序布局管理器,顺序布局(FlowLayout)管理器是最基本的布局管理器,是容

15、器指定的一个默认的布局管理器。它负责把组件一个接一个地从左到右顺序排列,一行排满后就转到下一行继续排列。 在顺序布局管理器领导下,一个组件通过容器的add方法就可以把自己加入到容器的组件队列中。但顺序布局管理器功能有限,不能很好地控制组件的排列,所以常用在组件较少的情况下,7.3.2 边界布局管理器,边界布局(BorderLayout)把容器(这里是Applet)分为五个区:北区、南区、东区、西区和中区。这几个区的分布规律是“上北下南,左西右东”,与地图的方位相同。组件可以指定自己放在那个区内,因为只有5个区,所以最多只能容纳5个组件,否则要采取其它布局方式,例7.1 本例应用程序用来创建一个

16、使用边界布局管理器存放组件的窗口,程序运行结果如图所示,import javax.swing.JFrame; import javax.swing.*; import java.awt.*; public class BL extends JFrame BorderLayout bl = new BorderLayout();/创建BorderLayout布局管理器对象 JButton bN, bS, bW, bE, bC; public BL() super(布局管理器);setSize(300, 200); setDefaultCloseOperation(JFrame.EXIT_ON_C

17、LOSE); /创建5个按钮对象 bN=new JButton(北); bS=new JButton(南); bE=new JButton(东); bW=new JButton(西);bC=new JButton(中,Container c = getContentPane();/创建内容面板 c.setLayout(bl);/设置内容面板的布局管理器为布局管理器 c.add(North, bN); c.add(South, bS); c.add(East, bE); c.add(West, bW); c.add(Center, bC); setVisible(true); public st

18、atic void main(String args) BL d = new BL(); 说明:在add方法中,第1个参数表示组件的摆放位置,必须从North、South、East、West、Center中选择一个。第2个参数是组件对象名,运行结果显示,边界布局管理器,7.3.3 卡片布局管理器,卡片布局(CardLayout)管理器可以管理多个组件,它将组件像卡片一样叠放起来,每次只显示一个。因此需要使用某种方法翻阅这些卡片。 例7.2 本例应用程序用来创建的窗口分为两个层次,最底层为内容面板对象,在其上面使用边界布局管理器在中间存放了一个面板对象pane,在下方存放了一个名称为“选择卡片”

19、的按钮对象button。程序运行结果如图所示,运行结果显示,使用卡片布局管理器的窗口,import java.awt.*; import java.awt.event.*; import javax.swing.*; public class CL extends JFrame JPanel pane= new JPanel(); JButton button =new JButton(选择卡片); CardLayout card=new CardLayout(); public CL() super(使用卡片布局管理器的窗口); setSize(300,200); setDefaultClo

20、seOperation(JFrame.EXIT_ON_CLOSE); pane.setLayout(card);/为面板pane调出卡片布局管理器 /通过循环语句直接将创建出的5个按钮对象添加到pane面板上 for (int i=1; i=5; i+) pane.add(String.valueOf(i), new Button(卡片号为:+i); card.show (pane, String.valueOf(1,Container c = getContentPane(); c.add(pane, BorderLayout.CENTER);/为内容面板c调出边界布局管理器 c.add(b

21、utton, BorderLayout.SOUTH); /在注册监听器同时创建ActionListener接口对象 button.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) card.next(pane); ); setVisible(true); public static void main(String arguments) CL ct=new CL();,7.3.4 网络布局管理器,网格布局(GridLayout)管理器把容器区域分成若干个网格,每个网格可以放置一个组

22、件,这种布局方式对数量众多的组件很合适。 例7.3 本例应用程序用来创建的窗口在内容面板对象上使用网格布局管理器划分了3行3列,9个网格,存放了6个按钮对象,3个标签对象。 如果要在网格之间添加间距,例如创建GridLayout(3, 3, 10, 10)对象时设置网格之间距离为10个点距,使用网格布局管理器的窗口,运行结果显示,7.3.5 组件的精确定位方式,存放组件也可以不用布局管理器,即使用setLayout(null)方法使布局管理器为空,这时可以使用setBounds(int x, int y, int w, int h)方法精确指出组件在容器中的存放位置。 例7.4 本例应用程序用

23、来创建的窗口在内容面板对象上使用精确定位方式指定了组件的存放位置与大小,使用精确定位方式指定组件的存放位置,运行结果显示,7.4 Java处理事件的方式,7.4.1 单击事件的处理方式 (1)引入事件类包 (2)包含事件处理方法的内部类 (3) 被包容类 (4)监听器对象 (5)单击事件类ActionEvent的常用方法,7.4.2 选择事件的处理方式,在处理选项被选中的事件时,需要实现ItemListener事件接口类中的itemStateChanged(ItemEvent e)方法。通过addItemListener(h)方法可将监听器注册到选项按钮上。当选项事件发生时,监听器对象h会调用

24、itemStateChanged方法执行指定任务。 可见,事件处理的关键是创建监听器类与对象,7.4.3 通过匿名类创建监听器对象,建匿名类有两个步骤: (1)使用实例化操作运算符new ItemListener ()创建对象。 (2)覆盖ItemListener ()构造方法,在该方法内实现了ItemListener接口类的itemStateChanged方法。这是匿名类的一种典型使用方式,7.5 总结提高,7.5.1 JApplet的特点 1JApplet只能在Web浏览器上运行 2对JApplet与Applet的限制 这些限制有以下几个方面: (1)不能加载库函数或定义本地方法。 (2)

25、不能读写本地计算机上的文件系统。 (3)除了下载它的服务器外不能和其它主机建立网络通讯。 (4)不能运行本地计算机上的任何程序。 (5)不能读取某些系统特性。 (6)JApplet、Applet打开的窗口和Application打开的窗口在外观上有所不同,3JApplet与Applet的特殊功能 下面列出了JApplet与Applet能够做的事情: (1)可以和它所在的Web服务器建立网络连接。 (2)能使Web浏览器方便地显示HTML文档内容。 (3)离开网页后JApplet与Applet可以继续运行也可以停止运行。 (4)可在状态栏显示短信息。 (5)可以调用同一个网页上的其它Applet

26、中的公共方法。 (6)可以播放声音文件。 (7)可以从HTML的标签中获取参数,7.5.2 Java的事件处理机制,1.事件 在图形用户界面中,程序和用户的交互是通过组件响应各种事件来实现的。例如,用户单击了一个按钮,意味着发生了按钮的单击事件;选中下拉列表中的一个选项,意味着发生了一个选项事件。 2.事件处理方法 当发生事件时做出反应,需要编写一个或多个对应的事件处理方法,通过监听器对象可以对事件源对象进行监听,当监听到事件发生时,就可以调用事件处理方法处理事件问题,3.事件处理模型,事件处理模型分为3个部分:事件源对象、事件监听器对象与事件对象。 能产生事件的组件叫做事件源,如按钮。 事件监听器注册在事件源对象(按钮或包含按钮的容器)上,用来监听事件是否发生,当事件发生时将调用事件处理方法解决问题。 事件对象用来封装已发生的事件的信息,在事件发生后,将信息传递给事件处理方法进行处理,事件监

温馨提示

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

评论

0/150

提交评论