电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

第九章 AWT图形用户界面设计.ppt

106页
  • 卖家[上传人]:marr****208
  • 文档编号:133899427
  • 上传时间:2020-05-31
  • 文档格式:PPT
  • 文档大小:1.03MB
  • / 106 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、1 第九章AWT图形用户界面设计 2 1 Java语言是跨平台的编程语言 那么图形用户界面如何做到跨平台 2 一个图形用户界面都会包含哪些组件 3 在设计用户用户界面时 如何排列各种组件 4 当图形界面中的组件被选中 点击 时 如何进行响应 课前思考 3 学习目标 掌握用Swing来设计图形用户界面的方法 尤其是组件 容器 布局管理器等概念 学习AWT事件处理模型 掌握事件源 事件 事件处理者等概念 让程序能够响应用户的操作 最后了解Swing各个组件的用法及所采用的事件处理接口 9 1AWT基础 开发图形界面的应用程序时 需要用到AWT 抽象图形工具集 AWT是Java开发工具包 JDK 的一部分 是Java基本类 JFC 的核心 AWT的作用是给用户提供基本的界面组件 如 窗口 按键 菜单等 此外 AWT还提供事件处理结构 支持剪贴板 数据传输和图像操作 在Java1 0中 AWT最初的设计目标是提供一个用来建立图形用户界面的独立平台 可以让程序员组建一个通用的GUI 使其在所有平台上都能正常显示 遗憾的是 这个目标并没有很好的实现 但幸运的是 这种情况从Java1 1以后得到了大

      2、的改进 从Java1 2开始 AWT添加了被称为 Swing 的新GUI库 Swing是基于AWT基本结构创建的二级用户界面工具集 与旧的AWT相比 Swing提供更加丰富的组件集 Swing中所提供的组件集几乎可以替代所有AWT中原有的组件 由此 许多人也许会产生Swing是AWT的替代物的误解 而实际上Swing是基于AWT之上创建的 因此 为了准确的掌握Swing组件集的工作方式 必须首先掌握AWT组件的行为及其工作原理 9 1 1java awt包简介AWT在java awt包中提供 表9 1列出了AWT中的Java软件包 AWT包含四个主要的类 组件类 Component 容器类 Container 图形类 Graphics 和布局管理器类 LayoutManager和LayoutManager2 Component 组件 类 菜单 按键 列表等组件的抽象基本类 Container 容器 类 扩展Component的抽象基本类 由Container派生的类有Panel Applet Window Dialog和Frame类等 在容器中 可以包含多个组件 Graphics 图形

      3、类 类 定义组件内图形操作的基本类 每个组件都有一个相关的图形对象 LayoutManager 布局管理器 类 定义容器中组件的位置和尺寸的接口 Java中定义了几种默认的布局管理器 表8 1AWT中的软件包 组件 容器和布局管理器构成了AWT中的简单基础关系 容器中可以包含组件 所有的容器都包含布局管理器 java awt Container类除外 用来指定容器中组件的位置和形状 图形类则提供在组件中显示文本和图形的方法 AWT中的许多操作都发生在组件 容器和布局管理器之间 9 1 2AWT组件类层次组件是构成AWT的基础 AWT中包括大量的组件 其中大约有一半的类由java awt Component类扩展而来 所以 Component和它所支持的类是AWT的基础 java awt Component类是一个抽象类 它为其派生类提供了许多功能 例如 一个组件可以有以下成员 图形对象 位置 尺寸 父容器 前景和背景色 最小 最大和首选尺寸等 Java语言中 面板 Panel 滚动条 Scrollbar 按键 Button 标签 Label 等等用户界面组件一般都派生自java awt

      4、 Component类 图9 1是一些主要的AWT组件的结构层次 图8 1 9 1 3容器和布局管理器从java awt Container类扩展的类称为容器 Container也是一个从Component扩展的抽象类 顾名思义 容器就是用来包含组件的 一个容器可以包含多个组件 也可以使用容器将相关组件关联在一起 成为一个整体 合理的使用容器可以简化图形界面的设计 而且对于组件的显示安排也很有用 表8 2列出了从java awt Container类派生的AWT容器类 后面我们还会详细说明这些容器的使用 表8 2Container的子类 容器只能记录包含的组件 而布局管理器则负责指定容器中组件的位置和大小 Java的布局管理器只需要确定组件和其他组件的相对位置 而不需要决定它的坐标 这样的安排令与平台无关的用户界面更易于实现 AWT中提供了五种布局管理器 BorderLayout 该布局管理器将容器划分为东 南 西 北 中五个区域 当添加组件到容器中时 要指明将容器放置到哪一个区域中 CarderLayout 该布局管理器将容器当作一个卡片栈 添加到容器中的每个组件都被放置在一个单独的

      5、卡片上 但每次只能显示一张卡片 FlowLayout 该布局管理器将添加到容器中的组件按从上到下 从左到右的顺序依次排列 GridLayout 该布局管理器将容器分成相同尺寸的网格 将添加到容器中的组件按从左到右 从上到下的顺序放置在每一个网格中 GridBagLayout 该布局管理器也是将容器分成网格 它和GridLayout不一样的是 一个组件可以占据不止一个网格的位置 关于布局管理器将在后面的章节中进行更深入的讨论 现在最重要的是站在高层次上理解布局管理器是如何协助容器管理组件的布局的 组件 容器和布局管理器构成了AWT中的简单基础关系 容器中可以包含组件 所有的容器都包含布局管理器 java awt Container类除外 用来指定容器中组件的位置和形状 图形类则提供在组件中显示文本和图形的方法 AWT中的许多操作都发生在组件 容器和布局管理器之间 21 importjavax swing publicclassSwingGui1 publicstaticvoidmain Stringargs JFrameframe newJFrame JButtonbutton newJ

      6、Button clickme frame setDefaultCloseOperation JFrame EXIT ON CLOSE frame getContentPane add button frame setSize 300 300 frame setVisible true 22 importjavax swing publicclassSwingGui2 加上菜单条和一级菜单publicstaticvoidmain Stringargs JFramemyFrame newJFrame JMenuBarmb newJMenuBar myFrame setJMenuBar mb JMenum1 newJMenu File mb add m1 JMenum2 newJMenu Edit mb add m2 JButtonbutton newJButton clickme myFrame setDefaultCloseOperation JFrame EXIT ON CLOSE myFrame getContentPane add button myFrame setSize 30

      7、0 300 myFrame setVisible true 23 importjavax swing importjava awt publicclassSwingGui3 加上窗口标题和图标publicstaticvoidmain Stringargs JFramemyFrame newJFrame Toolkitkit Toolkit getDefaultToolkit Imageimg kit getImage icon gif myFrame setIconImage img myFrame setTitle OneWorldOneDream JButtonbutton newJButton clickme myFrame setDefaultCloseOperation JFrame EXIT ON CLOSE myFrame getContentPane add button myFrame setSize 300 300 myFrame setVisible true 24 BuildingGUIswithAWT AbstractWindowToolkit java aw

      8、t包提供了基本的java程序的GUI设计工具 ComponentContainerLayoutManager 25 Component 组件 Java的图形用户界面的最基本组成部分是组件 组件是一个可以以图形化的方式显示在屏幕上并能与用户进行交互的对象 例如一个按钮 一个标签等 组件不能独立地显示出来 必须将组件放在一定的容器中才可以显示出来 Component类是大多数组件的超类 而Component类则直接继承Object类 Component类是一个抽象类 所以是不能直接使用 它为子类提供了非常多的虚拟方法 我们先简单介绍一下Component类提供的一些主要方法 publicbooleancontains intx inty publicbooleancontains Pointp 以上两个方法用于检查 x y 或者对象p这个点是否落在组件的范围之内 其中 x y 坐标是相对于此组件的左上角的 是则返回true 否则返回false publicColorgetBackground 返回组件的背景颜色 若组件没有设置背景颜色 则会返回其父组件 包含该组件的组件 的背景颜色 pub

      9、licvoidsetBackground Colorc 设置组件的背景颜色 若参数c的值为null 则会将背景颜色设为其父组件的背景颜色 publicRectanglegetBounds 返回组件外框矩形的范围 这个范围定义了组件的宽 高和相对其容器的坐标位置 publicvoidsetBounds intx inty intwidth intheight publicvoidsetBounds Rectangler 设置组件的位置 宽度和高度 可用于移动组件或改变其大小 除非此组件的容器没有使用布局管理器 否则这两个方法不生效 publicComponentgetComponentAt intx inty publicComponentgetComponentAt Pointp 判断组件或组件中的子组件 包含的组件 中 是否有一个包含 x y 这个点的组件 是则返回该组件 否则返回null 该方法只检查一级子组件 如果点 x y 在其子组件的子组件中 则只会返回该组件第一级的子组件 publicCursorgetCursor 返回组件的鼠标光标对象 如果该组件没有设置鼠标光标 则返回

      10、其父组件的鼠标光标 publicvoidsetCursor Cursorcursor 设置组件的鼠标光标 例如将Button的光标改为手指 将Panel的光标改为放大镜等 当鼠标移动到这些对象上时会产生相应的变化 若参数为null 则设成和父组件的光标一样 publicFontgetFont 返回组件的字体 若组件没有设置字体 则返回其父组件的字体 publicvoidsetFont Fontf 设置组件的字体 若参数f的值为null 则会采用其父组件的字体 publicColorgetForeground 返回组件的前景颜色 若组件没有设置前景颜色 则会返回其父组件的前景颜色 publicvoidsetForeground Colorc 设置组件的前景颜色 若参数c的值为null 则会将前景颜色设为其父组件的前景颜色 publicGraphicsgetGraphics 所有可视组件都有属于自己的Graphics对象可供画图 此方法返回该组件的Graphics对象 但要注意 若此组件还没有显示在屏幕上则会返回null publicPointgetLocation publicintge

      《第九章 AWT图形用户界面设计.ppt》由会员marr****208分享,可在线阅读,更多相关《第九章 AWT图形用户界面设计.ppt》请在金锄头文库上搜索。

      点击阅读更多内容
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.