零点起飞学Java之图形用户界面.pptx

上传人:zhu****ei 文档编号:5429581 上传时间:2020-01-29 格式:PPTX 页数:43 大小:347.05KB
返回 下载 相关 举报
零点起飞学Java之图形用户界面.pptx_第1页
第1页 / 共43页
零点起飞学Java之图形用户界面.pptx_第2页
第2页 / 共43页
零点起飞学Java之图形用户界面.pptx_第3页
第3页 / 共43页
点击查看更多>>
资源描述
第10章图形用户界面 图形用户界面 GraphicalUserInterface 简称GUI 提供了一种更加直观 友好的与用户进行交互的方式 利用Java语言进行图形用户界面操作主要由java awt和javax swing两个包来完成 其中 AWT包是图形用户界面处理的基本工具包 Swing包在AWT包的基础上进行了升级 扩展 具有更加强大的图形界面开发功能 10 1图形界面基础AWT AWT是抽象窗口工具箱的简称 包括了图形界面编程的基本类库 其作为Java语言GUI程序设计的核心 作用是给用户提供基本的界面构件 这些构件可以用来建立图形用户界面的独立平台 从而使得用户和机器之间更好地进行交互 AWT包的内容主要分为如下四部分 容器 用于放置基本组件 其本身也是一种组件 布局管理器 对容器中放置的组件进行布局管理 事件处理 采用事件处理机制 使得用户能够通过图形界面与系统进行交互 基本组件 包括按钮 标签 文本域等 是图形界面的基本组成元素 10 1图形界面基础AWT 通过综合使用AWT包的这些内容 即可构建出与用户能够友好交互的各种图形界面 这几部分内容在AWT包中都是以类或者接口的形式体现 各种类或接口通过面向对象的思想有机组织在一起 构成了一个层次结构的包 在AWT包的层次结构中 event对应着事件处理的相关内容 Componet为组件的基类 包括基本组件 如Button Label Checkbox等 和容器Container类两种 以Layout为结尾的FlowLayout BorderLayout等为布局管理器类 另外还有其他的一些辅助类 对于这些内容 下面章节进行详细介绍 10 2界面容器 容器是用来存放其他组件的一种特殊组件 在Java语言中 所有容器类都是Container类的子类 Container类继承了Component类 该类的两个常用子类是Frame和Panel类 Frame和Panel类代表两种不同类型的容器 下面分别进行介绍 10 2 1框架窗口类Frame Frame类容器是一种带有边框的框架窗口 可以不依赖于其他组件独立存在 Frame类继承了Window类 可以带标题 设置大小等 Frame类中定义了许多操作容器的方法 如下所示 ImagegetIconImage 获取此frame显示在最小化图标中的图像 RectanglegetMaximizedBounds 获取此frame的最大化边界 MenuBargetMenuBar 获取此frame的菜单栏 StringgetTitle 获得frame的标题 booleanisResizable 指示此frame是否可由用户调整大小 voidremove MenuComponentm 从此frame移除指定的菜单栏 voidsetIconImage Imageimage 设置此frame要显示在最小化图标中的图像 注意 Frame容器创建后默认是不可见的 需要调用setVisible 方法将其设置为可见 10 2 2区域类Panel Panel类容器没有任何边框 而且需要存在于其他容器中 该类容器只是包含在其他容器中的一个区域 通常用来将许多组件组合在一个区域内 Panel类中定义的方法 如下所示 Panel 构造方法 使用默认的布局管理器创建新面板 Panel LayoutManagerlayout 构造方法 创建具有指定布局管理器的新面板 voidaddNotify 创建Panel的同位体 AccessibleContextgetAccessibleContext 获取与Panel相关的AccessibleContext 10 3布局管理器 布局管理器用于布局容器中的组件 包括设定组件的位置和尺寸大小等 每个容器被创建后 都会有一个默认布局管理器 另外 可以设置指定的布局管理器对组件进行管理 Java语言的AWT包提供了不同类别的布局管理器 包括BorderLayout FlowLayout CardLayout等 下面分别进行介绍 10 3 1默认管理器BorderLayout BorderLayout布局管理器将容器划分为东 East 西 West 南 South 北 North 中 Center 五个区域 它是Frame类的默认布局管理器 采用BorderLayout布局时 向容器中添加组件需要指定组件所在的区域 BorderLayout类的构造方法主要有如下几种 BorderLayout 使用默认的居中对齐方式 水平和垂直间距为默认值 BorderLayout intalign 使用指定对齐方式 水平和垂直间距为默认值 BorderLayout intalign inthgap intvgap 使用指定的对齐方式 指定水平间距 垂直间距 10 3 1默认管理器BorderLayout 除了构造方法 BorderLayout类的其他一些常用方法如下所示 voidaddLayoutComponent Componentcomp Objectconstraints 使用指定的约束对象将指定组件添加到布局中 voidaddLayoutComponent Stringname Componentcomp 已过时 由addLayout Component Component Object 取代 ObjectgetConstraints Componentcomp 获得指定组件的约束 intgetHgap 返回组件之间的水平间距 floatgetLayoutAlignmentX Containerparent 返回沿x轴的对齐方式 floatgetLayoutAlignmentY Containerparent 返回沿y轴的对齐方式 ComponentgetLayoutComponent Containertarget Objectconstraints 基于目标Container的组件方向 获得给定约束位置所对应的组件 ComponentgetLayoutComponent Objectconstraints 获得使用给定约束添加的组件 10 3 1默认管理器BorderLayout intgetVgap 返回组件之间的垂直间距 voidinvalidateLayout Containertarget 该方法可使布局无效 指示布局管理器是否具有它应该丢弃的缓存信息 voidlayoutContainer Containertarget 使用此边界布局对容器参数进行布局 DimensionmaximumLayoutSize Containertarget 在给出指定目标容器中的组件的前提下 返回此布局的最大尺寸 DimensionminimumLayoutSize Containertarget 使用此布局管理器确定target容器的最小大小 DimensionpreferredLayoutSize Containertarget 基于容器中的组件 使用此布局管理器确定target容器的首选大小 voidremoveLayoutComponent Componentcomp 从此边界布局中移除指定组件 voidsetHgap inthgap 设置组件之间的水平间距 voidsetVgap intvgap 设置组件之间的垂直间距 StringtoString 返回此边界布局的状态的字符串表示形式 说明 每个区域只能显示一个组件 如果在一个区域添加了多个组件 则只有最后添加的那个组件是可见的 10 3 2流布局管理器FlowLayout FlowLayout布局管理器用于将组件按照从左到右 从上到下的顺序进行布局 它是Panel类的默认布局管理器 采用FlowLayout布局 不会改变组件的大小 按组件原有尺寸显示 当一个组件在本行放不下时 将自动换到下一行 FlowLayout布局管理器组件之间默认的间距是5个像素 默认对齐方式是居中 当然 可以调用相关方法设置不同的组件间距 行距以及对齐方式 FlowLayout类的构造方法主要有如下几种 FlowLayout 使用默认的居中对齐方式 水平和垂直间距为默认值 FlowLayout intalign 使用指定对齐方式 水平和垂直间距为默认值 FlowLayout intalign inthgap intvgap 使用指定的对齐方式 指定水平间距 垂直间距 10 3 2流布局管理器FlowLayout 除了构造方法 FlowLayout类的其他一些常用方法如下所示 voidaddLayoutComponent Stringname Componentcomp 将指定的组件添加到布局中 intgetAlignment 获得此布局的对齐方式 intgetHgap 获得组件之间以及组件与Container的边之间的水平间隙 intgetVgap 获得组件之间以及组件与Container的边之间的垂直间隙 voidlayoutContainer Containertarget 布置该容器 DimensionminimumLayoutSize Containertarget 返回需要布置visible组件的最小维数 该组件包含在指定的目标容器中 DimensionpreferredLayoutSize Containertarget 给出指定目标容器中的visible组件 返回此布局的首选维数 voidremoveLayoutComponent Componentcomp 从布局中移除指定的组件 voidsetVgap intvgap 设置组件之间以及组件与Container的边之间的水平间隙 StringtoString 返回此FlowLayout对象及其值的字符串表示形式 10 3 3卡片布局管理器CardLayout CardLayout布局管理器用于将组件以卡片的形式进行布局 采用CardLayout布局 每张卡片属于不同的层次 并且充满整个容器 当往容器中添加组件时 需指定所在卡片的名字 CardLayout类的构造方法主要有如下几种 CardLayout 无参构造方法 CardLayout inthgap intvgap 以指定间距创建CardLayout布局管理器 hgap指定卡片与容器的水平间距 vgap指定卡片与容器的垂直间距 10 3 3卡片布局管理器CardLayout 除了构造方法 CardLayout类的其他一些常用方法如下所示 voidaddLayoutComponent Componentcomp Objectconstraints 将指定的组件添加到此卡片布局的内部名称表 voidfirst Containerparent 翻转到容器的第一张卡片 intgetHgap 获得组件之间的水平间隙 floatgetLayoutAlignmentX Containerparent 返回沿x轴的对齐方式 floatgetLayoutAlignmentY Containerparent 返回沿y轴的对齐方式 voidinvalidateLayout Containertarget 使布局无效 指示如果布局管理器缓存了信息 则应该将其丢弃 voidlast Containerparent 翻转到容器的最后一张卡片 voidlayoutContainer Containerparent 使用此卡片布局布置指定的容器 DimensionmaximumLayoutSize Containertarget 给出指定目标容器中的组件 返回此布局的最大维数 voidshow Containerparent Stringname 翻转到已添加到此布局 使用addLayoutComponent 的具有指定name的组件 说明 因为任何时候只有一张卡片是可见的 第一张卡片位于层次的最顶端 所以运行结果只看到第一张卡片中的组件 10 3 4网格布局管理器GridLayout GridLayout布局管理器将容器划分为由行和列组成的多个网格 每个网格放一个组件 采用GridLayout布局时 在容器中按照从左到右 从上到下的顺序往网格中逐个添加组件 GridLayout类的构造方法主要有如下几种 GridLayout 无参构造方法 GridLayout introws intcols 使用指定的行数和列数 GridLayout introws intcols inthgap intvgap 使用指定的行数和列数及水平间距 垂直间距 10 3 4网格布局管理器GridLayout 除了构造方法 GridLayout类的其他一些常用方法如下所示 voidaddLayoutComponent Stringname Componentcomp 将具有指定名称的指定组件添加到布局 intgetColumns 获取此布局中的列数 intgetHgap 获取组件之间的水平间距 intgetRows 获取此布局中的行数 intgetVgap 获取组件之间的垂直间距 voidlayoutContainer Containerparent 使用此布局布置指定容器 DimensionpreferredLayoutSize Containerparent 使用此网格布局确定容器参数的首选大小 voidremoveLayoutComponent Componentcomp 从布局移除指定组件 voidsetColumns intcols 将此布局中的列数设置为指定值 StringtoString 返回此网格布局的值的字符串表示形式 10 3 5高级网格布局管理器GridBagLayout GridBagLayout布局管理器在GridLayout布局管理器的基础上提供了更加复杂的功能 采用GridBagLayout布局时 一个组件可以跨越多个行列放在多个网格内 另外 可以通过设定填充方式 间距等任意调整组件的大小和位置 GridBagLayout布局管理器引入了GridBagConstraints类 该类用于辅助定义有关组件布局的各种属性 GridBagConstraints类的主要属性有如下几种 intanchor 指定组件在区域中放置的位置 intfill 指定组件填充方式 intgridheight 指定组件的高度 单位为网格个数 intgridwidth 指定组件的宽度 单位为网格个数 intgridx 指定组件的横向坐标 单位为网格个数 intgridy 指定组件的纵向坐标 单位为网格个数 Insetsinsets 指定组件与区域的间隔大小 intipadx 指定组件间的横向间距 intipady 指定组件间的纵向间距 10 3 5高级网格布局管理器GridBagLayout GridBagConstraints类的一些常用方法如下所示 voidaddLayoutComponent Componentcomp Objectconstraints 使用指定constraints对象将指定组件添加到布局中 protectedvoidadjustForGravity GridBagConstraintsconstraints Rectangler 根据约束几何结构和填充将x y 宽度和高度四个字段调整为正确值 protectedvoidAdjustForGravity GridBagConstraintsconstraints Rectangler 此方法已过时 仅提供向后兼容性 新代码应该调用adjustForGravity来代替 protectedvoidArrangeGrid Containerparent 此方法已过时 仅提供向后兼容性 新代码应该调用arrangeGrid来代替 GridBagConstraintsgetConstraints Componentcomp 获得指定组件的约束 DimensionmaximumLayoutSize Containertarget 在给出指定目标容器中的组件的前提下 返回此布局的最大维数DimensionminimumLayoutSize Containerparent 使用此网格包布局确定parent容器的最小大小 DimensionpreferredLayoutSize Containerparent 使用此网络包布局确定parent容器的首选大小 voidremoveLayoutComponent Componentcomp 从此布局移除指定组件 10 4事件处理 事件处理是图形界面与用户进行交互的重要内容 Java语言的事件处理机制包括事件源 事件 事件处理器三个主要的概念 首先需要为事件源注册相应的事件处理器 事件源产生指定事件 事件处理器捕获后进行相应事件处理 关于事件处理的具体内容 下面进行详细介绍 10 4 1什么是事件处理 事件处理是图形用户界面中的重要部分 应用程序生成的图形界面应该能够响应用户的各种操作 如鼠标单击 键盘键按下 单击按钮等 程序对用户操作的响应使得系统能够和用户进行各种交互 从而可以实现各种处理流程 图形界面对用户操作的响应采用事件处理的机制来完成 该机制包括如下三个重要的概念 事件源 产生事件的各种组件 如窗口 按钮 复选框等 事件 用户对事件源的各种操作动作 事件处理器 用于接收并处理事件的方法 10 4 1什么是事件处理 图形用户界面的事件处理机制是将事件处理授权给事件处理器 从而实现事件源与事件处理器的分离 事件处理器专门负责事件处理 事件源对发生的事件只做发送操作 不做任何其他处理 事件源与事件处理器之间通过具体事件进行联系 三者之间的关系如图10 12所示 10 4 1什么是事件处理 在Java语言中 AWT事件处理部分的内容主要由java awt event包来完成 针对各种AWT事件 java awt event包中定义了各种相应的事件类 所有AWT事件类都由AWTEvent类派生而来 每个事件类分别对应不同的事件类别 其中包含了该类事件的各种相关信息 可以调用相应的API方法进行获取 另外 对所有事件类一个公共的功能就是能够获得事件源对象 在具体的事件处理方法中 往往需要提供事件源的各种信息 通过事件类即可以获得事件源对象 事件处理器是事件处理的核心部件 java awt event包中定义了各种事件处理的接口 这些接口通常为XxxxListener的形式 称为事件监听器 对每一种事件监听器接口 java awt event包又定义了相应的实现类 通常为XxxxAdapter的形式 称为事件适配器 事件处理器就是实现了事件监听器接口或者继承了事件适配器类的对象 其中的相应方法负责处理具体的事件 10 4 2事件监听器 事件监听器是用于监听事件源触发事件的对象 其中包含对事件发生后的处理操作 在Java语言中 针对不同的事件 定义了相应的事件监听器接口 下面列举一些较常用的事件监听器接口 ActionListener 用于接收操作事件的监听器接口 AdjustmentListener 用于接收调整事件的监听器接口 AWTEventListener 该监听器接口用于接收指派给对象的事件的通知 这些对象是Component MenuComponent或其子类的实例 ComponentListener 用于接收组件事件的监听器接口 ContainerListener 用于接收容器事件的监听器接口 FocusListener 用于接收组件上的键盘焦点事件的监听器接口 HierarchyBoundsListener 用于接收组件的移动和大小调整事件的监听器接口 HierarchyListener 用于接收层次结构更改事件的监听器接口 InputMethodListener 接收输入方法事件的监听器接口 10 4 3事件适配器 10 4 2节介绍的事件监听器通常都是以实现接口的方式进行定义的 因为实现接口就要实现其定义的所有方法 仅为实现一个事件方法而采用事件监听器方式所写的代码会显得非常重复 在Java语言中 针对每个事件监听器接口 系统定义了相应的实现类 称为事件适配器 只要继承事件适配器类 仅覆盖需要的相应方法就可以处理某个特定的事件了 这样代码变得更加简洁 下面列举几个较常用的事件适配器类 ComponentAdapter 用于接收组件事件的抽象适配器类 FocusAdapter 用于接收键盘焦点事件的抽象适配器类 KeyAdapter 接收键盘事件的抽象适配器类 MouseAdapter 接收鼠标事件的抽象适配器类 MouseMotionAdapter 接收鼠标移动事件的抽象适配器类 WindowAdapter 接收窗口事件的抽象适配器类 10 5AWT基本组件 基本组件是构成图形用户界面的基本元素 基本组件添加到容器中 由专门的布局管理器管理布局 通过事件机制来响应用户的操作 Java语言的AWT包提供了各种基本的图形界面组件 包括Button Label Checkbox等 下面分别进行介绍 10 5 1按钮 按钮Button是图形界面中经常使用的组件 用户单击按钮时触发一定的执行动作 Button类的一些常用方法如下所示 voidaddActionListener ActionListenerl 添加指定的操作监听器 以接收来自此按钮的操作事件 voidaddNotify 创建按钮的同位体 AccessibleContextgetAccessibleContext 获得与此Button相关的AccessibleContext StringgetActionCommand 返回此按钮激发的操作事件的命令名称 ActionListener getActionListeners 返回在此按钮上注册的所有操作监听器的一个数组 StringgetLabel 获得此按钮的标签 voidremoveActionListener ActionListenerl 移除指定的操作监听器 以便它不再接收来自此按钮的操作事件 voidsetActionCommand Stringcommand 设置此按钮激发的操作事件的命令名称 10 5 2标签 标签Label用于在图形界面上显示一行只读的文本 Label类的一些常用方法如下所示 voidaddNotify 创建此标签的同位体 AccessibleContextgetAccessibleContext 获取与此标签相关的AccessibleContext intgetAlignment 获取此标签的当前对齐方式 StringgetText 获取此标签的文本 protectedStringparamString 返回一个表示此Label状态的字符串 voidsetAlignment intalignment 将此标签的对齐方式设置为指定的方式 voidsetText Stringtext 将此标签的文本设置为指定的文本 10 5 3单行文本域 上面介绍的标签组件显示的文本是只读的 用户不能进行编辑 单行文本域TextField组件提供了单行文本编辑的功能 TextField类的一些常用方法如下所示 voidaddActionListener ActionListenerl 添加指定的操作监听器 以从此文本字段接收操作事件 voidaddNotify 创建TextField的同位体 booleanechoCharIsSet 指示此文本字段是否有一个回送字符集 AccessibleContextgetAccessibleContext 获取与此TextField相关的AccessibleContext ActionListener getActionListeners 返回此文本字段上已注册的所有操作监听器的数组 chargetEchoChar 获取用于回送的字符 T getListeners ClasslistenerType 返回当前已在此TextField上注册为FooListener的所有对象的数组 DimensiongetMinimumSize 获取此文本字段的最小尺寸 DimensiongetMinimumSize intcolumns 获取具有指定列数的文本字段的最小尺寸 DimensiongetPreferredSize 获取此文本字段的首选大小 10 5 4多行文本域 单行文本域TextField虽然能够让用户编辑文本 但只能在一行内编辑 当需要编辑多行文本时 需要使用多行文本域组件TextArea TextArea类的一些常用方法如下所示 voidaddNotify 创建TextArea的同位体 voidappend Stringstr 将给定文本追加到文本区的当前文本 voidappendText Stringstr 已过时 从JDKversion1 1开始 由append String 取代 AccessibleContextgetAccessibleContext 返回与此TextArea相关的AccessibleContext intgetColumns 返回此文本区中的列数 DimensiongetMinimumSize 确定此文本区的最小大小 DimensiongetPreferredSize introws intcolumns 确定具有指定行数和列数的文本区的首选大小 intgetRows 返回此文本区的行数 intgetScrollbarVisibility 返回指示文本区使用何种滚动条的枚举值 voidinsert Stringstr intpos 在此文本区的指定位置插入指定文本 voidinsertText Stringstr intpos 已过时 从JDKversion1 1开始 由insert String int 取代 10 5 5复选框和单选按钮 Checkbox组件属于一种选择按钮 用户可以进行相关选项的选择 结合CheckboxGroup类使用 Checkbox组件可以分别实现复选框和单选按钮的功能 如果不给多个Checkbox组件设置分组CheckboxGroup 则这些Checkbox组件是复选框 用户可以同时选中多个选项 如果给多个Checkbox组件设置为同一个分组CheckboxGroup 则这些Checkbox组件为单选按钮 每次只能有一个选项选中 Checkbox类的一些常用方法如下所示 voidaddItemListener ItemListenerl 添加指定的项监听器 以接收来自此复选框的项事件 voidaddNotify 创建Checkbox的同位体 AccessibleContextgetAccessibleContext 获得与此Checkbox相关的Accessible Context CheckboxGroupgetCheckboxGroup 确定此复选框的组 ItemListener getItemListeners 返回已在此复选框上注册的所有项监听器所组成的数组 booleangetState 确定此复选框是处于 开 状态 还是处于 关 状态 protectedStringparamString 返回表示此Checkbox的状态的字符串 protectedvoidprocessEvent AWTEvente 处理关于此复选框的事件 10 5 6列表 列表List组件用于列举多个可供选择的文本选项 包含单选和多选两种模式 列举的文本选项分为多行 只能进行选择 不能编辑 List类的一些常用方法如下所示 voidadd Stringitem intindex 向滚动列表中索引指示的位置添加指定的项 voidaddActionListener ActionListenerl 添加指定的操作监听器以从此列表接收操作事件 voidaddItemListener ItemListenerl 添加指定的项监听器以接收此列表的项事件 voiddeselect intindex 取消选择指定索引处的项 AccessibleContextgetAccessibleContext 获取与此List关联的AccessibleContext ActionListener getActionListeners 返回已在此列表上注册的所有操作监听器的数组 ItemListener getItemListeners 返回已在此列表上注册的所有项监听器的数组 DimensiongetMinimumSize 确定此滚动列表的最小大小 intgetSelectedIndex 获取列表中选中项的索引 StringgetSelectedItem 获取此滚动列表中选中的项 10 6Swing简介 AWT包包括了进行图形界面开发的各方面内容 如容器 组件 布局管理 事件处理等 采用AWT包开发的图形界面一个主要特点是依赖于具体的操作系统 不同的操作系统 显示的图形外观可能不同 从JDK1 2版本以后 Java语言引入了一个新的图形界面开发包javax swing Swing包在AWT包的基础上 完全采用Java语言开发 实现了图形界面的跨平台 Swing包提供了支持跨平台功能的更加丰富的组件库 也称为轻量级组件 而把AWT的组件称为重量级组件 javax swing包中的组件类通常以字母 J 开头 如JFrame JPanel JButton JLabel JCheckBox等 相对于AWT包 Swing包提供了更加强大的图形界面开发功能 在AWT包的基础上增加了许多新的组件 Swing中的大部分组件都继承了JComponet类 Swing包中与AWT包中对应的组件 在使用方法上基本相同 只不过 Swing包采用轻量级的方法在AWT的基础上重新编写了该组件 当然 Swing包也增加了许多AWT没有的组件 具有更加丰富的类库 关于Swing界面开发知识的详细内容 是可以专门通过一本书来介绍的 限于篇幅 这里不再详细阐述 具体可参考相关材料 10 7Applet AWT包中的panel类有个特殊的子类java applet Applet Applet是用Java语言编写的小应用程序 嵌入到Web页面中在客户端浏览器执行 每个Applet都有其生命周期 分为初始化 运行 停止 消亡 对于Applet的相关知识 下面进行详细介绍 10 7 1什么是Applet Applet是用Java语言编写的小应用程序的简称 可以直接嵌入到网页中运行 并能够产生特殊的效果 在JavaApplet中 可以实现图形绘制 字体和颜色控制 动画和声音的插入以及人机交互 网络交流等功能 Applet程序的执行方式不同于一般的Java程序 一般的Java程序执行是从它的main 方法被调用开始的 而一个Applet通常不包含main 方法 Applet程序通常是被嵌入到HTML页面中 由支持Java程序的Web浏览器执行 开发 执行Applet程序的主要步骤如下所示 1 编写JavaApplet源程序 2 将Applet源程序编译生成为字节码文件 3 在HTML页面文件中使用标签引用步骤 2 中的字节码文件嵌入Applet 4 访问包含Applet的HTML页面 运行Applet 在Java语言中 专门提供了java applet包用于支持Applet的开发 其中 java applet Applet类是所有Applet应用的基类 所有的Java小应用程序都必须继承该类 该类实际上是java awt Panel的子类 所以可直接使用图形界面AWT中的相关内容 另外 Java语言还定义了javax swing JApplet类 该类可以使用Swing包中的相关内容 利用AWT和Swing包 Applet就可以创建各种标准的图像界面程序 10 7 1什么是Applet 在java applet Applet类中定义了很多基本的方法 用于操作Applet 其中 一些主要的方法如下所示 booleanisActive 判断一个Applet是否处于活动状态 URLgetDocumentBase 检索表示该Applet运行的文件目录的对象 URLgetCodeBase 获取该Applet代码的URL地址 StringgetParameter Stringname 获取该Applet由name指定参数的值 AppletContextgetAppletContext 返回浏览器或小应用程序观察器 voidresize intwidth intheight 调整Applet运行的窗口尺寸 voidshowStatus Stringmsg 在浏览器的状态条中显示指定的信息 ImagegetImage URLurl 按url指定的地址装入图像 ImagegetImage URLurl Stringname 按url指定的地址和文件名加载图像 对于Applet中的最基本内容 如何管理Applet的生命周期及运行Applet 下面章节将进行详细介绍 10 7 2Applet生命周期 每个Applet都有其初始化 运行 停止 消亡的过程 这些过程组成了Applet的生命周期 Applet运行于客户端的浏览器中 在生命周期的各种状态下执行相应的任务 从而实现与用户的交互 Applet类定义了一些与其生命周期有关的方法 在生命周期的不同阶段 通过调用相应方法可以实现各种有针对性的操作 对于Applet生命周期的不同阶段 下面分别进行介绍 1 初始化 初始化是Applet生命周期的开始阶段 通过调用Applet类的init 方法完成 init 方法在浏览器第一次加载Applet时被调用 而且在Applet生命周期中只执行一次 2 运行 运行是Applet在生命周期中进行服务所做的主要工作 通过调用Applet类的start 方法完成 一个Applet的主要功能 如播放视频 显示动画等都放在start 方法内 init 方法执行完后 系统会自动调用start 方法 另外 当用户从其他页面返回包含Applet的当前页面时也会执行start 方法 start 方法可以被多次执行 3 停止 停止要通过调用Applet类的stop 方法完成 当用户离开包含Applet的当前页面时系统会自动执行stop 方法 stop 方法的主要作用是当用户不再关注Applet时能够停止一些没用的动作 stop 方法也能被多次执行 4 消亡 消亡要通过调用Applet类的destroy 方法完成 当浏览器被正常关闭时 系统会自动调用此方法 该方法中放置的代码主要用来回收一些系统资源 10 7 3运行Applet Applet最终在支持Java程序的客户端浏览器中运行 要在浏览器中调用 运行Applet 就要将Applet嵌入到Web页面中 在HTML页面中嵌入Applet需要使用标签 标签的语法格式如图10 24所示 10 7 3运行Applet 图中参数为标签的子标签 用于为Applet传递参数 包含name和value两个属性 另外 标签还可以包含其他一些属性 主要如下所示 Name 表示Applet的名称 Width 表示Applet区域的宽度 Height 表示Applet区域的高度 10 8小结 本章介绍了Java语言中用于图形界面开发的AWT Swing包的相关内容及Applet应用程序的相关知识 重点介绍了用于图形界面开发的各种容器 布局管理器 事件处理 常用组件的具体使用 本章最后给出了一个完整的实例 其中 图形界面开发中容器 组件 事件的综合运用是本章的难点 读者只有根据具体需求灵活使用各种组件类才能设计出更加友好的图形界面 也需要在具体开发过程中多动手练习 从而更加深入地掌握如何进行图形界面开发 第11章将介绍Java语言中XML开发方面的知识
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!