




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2 用来构成一个图形化界面的 各种元素 如 按钮 标签 树 表格以及框架等 且每个组件又会拥有不同形态 以满足不同用户需要 是构成图形化界面最基本的元素 JavaSwing组件 3 目的 了解整个JavaSwing组件类的框架 主要介绍JavaSwing组件的一些基础知识 包括 Swing组件类的继承 顶层类的结构 顶层容器类的使用 内容面板的使用 如何在顶层容器中添加菜单栏 JComponent类的相关知识 4 回顾 AWT组件类的层次 继承 结构 5 3 1Swing组件类的层次 6 从以上结构图可知 Swing组件类可分成两种类型 JComponent类 Window类其中 Window组件类 包括一些 可独立显示 的组件 JComponent组件类 包括一些 不能独立显示 的组件 简要说明 7 可独立显示的组件当运行一个程序时 这个组件无须托付在其它组件上就可以显示 即能够直接显示出来 如 JFrame类 无须依靠任何其它组件即可独立显示 不可独立显示的组件必须依靠可独立显示的组件才能显示 如 文本框组件 按钮组件 必须依托在JFrame框架组件上才能显示出来 8 Javax swing包 中的Swing组件共有三种类型 顶层组件 中间组件 基本组件顶层组件 又被称为 顶层容器 中间组件 又分为 中间容器 和 特殊中间组件 按功能上划分 9 10 各组件类型含义 1 顶层容器如 JFrame JApplet JDialog JWindow 可理解为 Window 组件 指能够独立显示的组件 2 中间容器如 JPanel JScrollPane JSplitPane JToolBar 指那些可充当载体 但也不能独立显示的组件 即可将一些基本控件放在其中 但却不能独立显示 必须要依托在顶层容器内方能显示 11 3 特殊容器如 JInternalFrame JLayeredPane JRootPane作为一种中间容器类 是GUI上起特殊作用的中间层 只是在图形上更能起到 美化 和 专业化 的作用 4 基本组件如 JButton JComboBox JList JMenu JSlider JTextField 主要用于实现人机交互的组件 指那些只能依托在中间容器上才能被显示的组件 而不能独立存在 12 基本组件 程序示例 13 运行结果 14 说明 运行结果没有任何显示 原因 基本组件 必须依托在中间容器中 并让中间容器依托在顶层容器内才能显示出来 15 程序修改 16 运行结果 说明 上述 修改程序 可将基本组件显示出来 从而也证明了基本组件是不能独立显示的组件 17 顶层容器 中间容器 内容面板 基本组件叠放层次示意图 18 3 2Window类 上节介绍了顶层容器类的基本概念 本节将介绍有关更深入 实用的知识 如 怎样使用顶层容器类 顶层容器类的种类 顶层容器类所继承下来的层次等 19 3 2 1顶层容器类和包含层次 问题 使用Java进行图形编程时 组件被绘制在哪里 解决 首先需要一个能提供图形绘制的容器 顶层容器 Desktop 顶层容器是进行 图形编程 的基础 一切图形化的东西 都必须包含在顶层容器中 也可将其想象成一个窗口 Swing中主要有三种可以使用的顶层容器 JFrame 用来设计类似于Windows系统中窗口形式的应用程序 JDialog 和JFrame类似 只是JDialog常用来设计对话框 JApplet 用来设计可以嵌入在网页中的Java小程序 20 对顶层容器类的理解 三种顶层容器均可独立显示在实际开发中 通常作为一个图形界面的最顶层窗口 Swing图形界面至少需要有一个顶层容器容器与其所包含的组件 形成了 树状包含层次结构 顶层容器就是这个层次结构的 根 每个顶层容器都有一个内容面板即中间容器类组件 可包含 承载 界面中所需要的各种基本组件 在顶层容器中可添加菜单组件菜单组件一般放在顶层容器中 和内容面板是并行的 即顶层容器可以同时包含菜单组件和内容面板 21 实际开发中 大多数Java程序都使用 JFrame 组件对象作为顶层容器 当然 JDialog 和 JApplet 也可以作为顶层窗口 只不过JDialog一般作为弹出窗口使用 而JApplet一般作为嵌在网页中的小程序的框架使用 大多数图形界面的顶层容器仍使用JFrame作为程序框架 22 JFrame作为顶层窗口示意图 23 首先 创建一个顶层容器JFrame 其次 创建一个内容面板或中间容器JPanel 也可以创建一个菜单组件JMenu 最后 将所需要的基本组件JComponent 按照一定的布局方式 添加到内容面板中 即可形成一个图形界面 设计一个图形界面的步骤 24 3 2 2在顶层容器中添加组件 与AWT组件不同 Swing基本组件不能直接添加到顶层容器中 而必须添加到一个与Swing顶层容器相关联的 内容面板 ContentPane 上 内容面板实际上是一个中间组件 容器 轻量组件 基本规则 须创建一个与顶层容器相联系的内容面板 避免使用非Swing的重量级组件 25 在JFrame顶层容器中添加中间组件的方法 方法一 用getContentPane 方法 获得JFrame的内容面板 再在这个内容面板中添加组件 方法为 frame getContentPane add childComponent 方法二 首先建立一个Jpanel或JDesktopPane之类的中间容器 将组件添加到容器中 然后再用setContentPane 方法将该中间容器设置为JFrame的内容面板 26 27 在顶层容器中添加内容面板程序示例 28 程序运行结果 图3 5添加内容面板测试程序运行结果 29 在内容面板中添加普通组件示例程序 30 程序运行结果 图3 6在内容面板中添加普通组件 31 3 2 3在顶层容器中添加菜单栏 32 程序运行结果 33 在菜单中的空白处是否能添加基本组件呢 34 程序运行结果 图3 9组件添加到菜单的顶层容器中 说明 主要是在顶层容器中 使用setJMenuBar 方法嵌入菜单条 使用setContentPane 嵌入按钮组件到中间容器 按照此方式 即可形成一个完整的应用程序界面 35 3 3JComponent类 36 关于JComponent类的说明 JComponent类是所有 轻量组件 的父类 上述所列 仅为JComponent类的一些常用子类 所有继承JComponent类的组件 都属于基本组件类 只能依赖中间容器存在 显示 37 JComponent类的特性 9大显著特性 38 功能1 Tooltips 工具提示功能通过在 setToolTipText方法 中指定字符串 为一个组件提供帮助 即 当鼠标停留在组件上时 指定的 字符串 将出现在该组件附近 39 程序运行结果 图3 11工具提示程序运行 40 功能2 绘画和边框使用 setBorder方法 或 BorderFactory类 创建Swing所提供的绝大多数边框 41 程序运行结果 图3 12绘制按钮边框 42 说明 边界由 BorderFactory creat Border 返回 其类型为Border 常用边界 黑线 BorderFactory createLineBorder Color black 凸起边界 BorderFactory createEtchedBorder EtchedBorder RAISED 凹下边界 BorderFactory createEtchedBorder EtchedBorder LOWERED 凸起 BorderraisedBevel BorderFactory createRaisedBevelBorder 凹下 BorderLoweredBevel BorderFactory createLoweredBevelBorder 加粗默认线 BorderFactory createCompoundBorder raisedBevel loweredBevel 43 功能3 可插入的观感器 可 定制桌面 更新颜色方案 使系统适应用户的习惯和需要 使界面具有不同的风格 Swing提供一些已封装的观感 如默认 Motif和Windows的L F 说明 当程序未设置外观感觉时 系统必须确定使用哪种外观感觉 首先将检查程序代码中是否指定了一个外观感觉 若已经指定 即使用程序员所指定的外观感觉 若没有指定 系统将选择Java默认外观感觉 44 功能4 自定义属性 将一个或多个属性与任何JComponent相关联 功能5 layout支持 对布局的支持功能 功能6 无障碍
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论