




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JavaJava SwingSwing 用户界面设计用户界面设计 11 111 1 SwingSwing 简介简介 11 1 111 1 1 简介简介 第五讲中我们学习了 AWT AWT 是 Swing 的基础 Swing 的产生主要原因就 是 AWT 不能满足图形化用户界面发展的需要 AWT 设计的初衷是支持开发小应用程序的简单用户界面 例如 AWT 缺少剪贴板 打印支持 键盘导航等特性 而且原来的 AWT 甚至不包括弹出式菜单或滚动窗 格等基本元素 此外 AWT 还存在着严重的缺陷 人们使 AWT 适应基于继承的 具有很大伸 缩性的事件模型 基于同位体的体系结构也成为其致命的弱点 随着发展的需要 Swing 出现了 Swing 组件几乎都是轻量组件 与重量组 件相比 没有本地的对等组件 不像重量组件要在它们自己的本地不透明窗体 中绘制 轻量组件在它们的重量组件的窗口中绘制 这一讲我们讲一下基本的 Swing 组件使用方法和使用 Swing 组件创建用户 界面的初步方法 Swing 是由 100 纯 Java 实现的 Swing 组件是用 Java 实现的轻量级 light weight 组件 没有本地代码 不依赖操作系统的支持 这是它与 AWT 组件的最大区别 由于 AWT 组件通过与具体平台相关的对等类 Peer 实现 因此 Swing 比 AWT 组件具有更强的实用性 Swing 在不同的平台上表现一致 并且有能力提供本地窗口系统不支持的其它特性 Swing 采用了一种 MVC 的设计范式 即 模型 视图 控制 Model View Controller 其中模型用来保存内容 视图用来显示内容 控制器用来控制 用户输入 Swing 外观感觉采用可插入的外观感觉 Pluggable Look and Feel PL 引入 Swing 包名 import com sun java swing 使用 JDK 1 2 Beta 4 版和所有 Swing 1 1 Beta 3 之前的版本 引入 Swing 包名用此方法 import java awt import java awt event public class SwingApplication private static String labelPrefix Number of button clicks private int numClicks 0 计数器 计算点击次数 public Component createComponents final JLabel label new JLabel labelPrefix 0 JButton button new JButton I m a Swing button button setMnemonic KeyEvent VK I 设置按钮的热键为 I button addActionListener new ActionListener public void actionPerformed ActionEvent e numClicks label setText labelPrefix numClicks 显示按钮被点击的次数 label setLabelFor button 在顶层容器及其内容之间放置空间的常用办法是把内容添加到 Jpanel 上 而 Jpanel 本身没有边框的 JPanel pane new JPanel pane setBorder BorderFactory createEmptyBorder 30 top 30 left 10 bottom 30 right pane setLayout new GridLayout 0 1 单列多行 pane add button pane add label return pane public static void main String args try UIManager setLookAndFeel UIManager getCrossPlatformLookAndFeelClassName 设置窗口风格 catch Exception e 创建顶层容器并添加内容 JFrame frame new JFrame SwingApplication SwingApplication app new SwingApplication Component contents app createComponents frame getContentPane add contents BorderLayout CENTER 窗口设置结束 开始显示 frame addWindowListener new WindowAdapter 匿名类用于注册监听器 public void windowClosing WindowEvent e System exit 0 frame pack frame setVisible true 查看运行结果 11 1 911 1 9 SwingSwing 程序结构简介程序结构简介 Swing 的程序设计一般可按照下列流程进行 1 引入 Swing 包 2 选择 外观和感觉 3 设置顶层容器 4 设置按钮和标签 5 向容器中添加组件 6 在组件周围添加边界 11 进行事件处理 例子 11 1 说明了 Swing 中程序设计的结构以及最基本的组件 Button 和 Label 的用法 在程序中 我们建立一个 Swing 风格的窗口 并在其中添加一 个按钮 程序中保存一个计数器以计算按钮被点击的次数 并在每一次点击之 后用一个 Label 显示 在这个程序中我们可以看到 Swing 组件的使用与 AWT 组 件的使用基本方法一致 使用的事件处理机制也完全相同 这些在前面的 AWT 中已经讲过 不再赘述 11 211 2 SwingSwing 组件和容器组件和容器 在 Swing 中不但用轻量级的组件替代了 AWT 中的重量级的组件 而且 Swing 的替代组件中都包含有一些其他的特性 例如 Swing 的按钮和标签可显 示图标和文本 而 AWT 的按钮和标签只能显示文本 Swing 中的大多数组件都 是 AWT 组件名前面加了一个 J 11 2 111 2 1 组件的分类组件的分类 Jcomponent 是一个抽象类 用于定义所有子类组件的一般方法 其类层次 结构如下所示 java lang Object java awt Component java awt Container javax swing JComponent 并不是所有的 Swing 组件都继承于 JComponent 类 JComponent 类继承于 Container 类 所以凡是此类的组件都可作为容器使用 组件从功能上分可分为 组件从功能上分可分为 1 顶层容器 JFrame JApplet JDialog JWindow 共 4 个 2 中间容器 JPanel JScrollPane JSplitPane JToolBar 3 特殊容器 在 GUI 上起特殊作用的中间层 如 JInternalFrame JLayeredPane JRootPane 4 基本控件 实现人际交互的组件 如 Jbutton JComboBox JList JMenu JSlider JtextField 5 不可编辑信息的显示 向用户显示不可编辑信息的组件 例如 JLabel JProgressBar ToolTip 6 可编辑信息的显示 向用户显示能被编辑的格式化信息的组件 如 JColorChooser JFileChoose JFileChooser Jtable JtextArea JComponentJComponent 类的特殊功能又分为 类的特殊功能又分为 1 边框设置 使用 setBorder 方法可以设置组件外围的边框 使用一个 EmptyBorder 对象能在组件周围留出空白 2 双缓冲区 使用双缓冲技术能改进频繁变化的组件的显示效果 与 AWT 组件不同 JComponent 组件默认双缓冲区 不必自己重写代码 如果想关闭双 缓冲区 可以在组件上施加 setDoubleBuffered false 方法 3 提示信息 使用 setTooltipText 方法 为组件设置对用户有帮助的 提示信息 4 键盘导航 使用 registerKeyboardAction 方法 能使用户用键盘 代替鼠标来驱动组件 JComponent 类的子类 AbstractButton 还提供了便利的 方法 用 setMnemonic 方法指明一个字符 通过这个字符和一个当前 L 把其它组件添加到 Jpanel 中 frame setContentPane contentPane 把 contentPane 对象设置成为 frame 的内容面板 11 2 3 各种容器面板和组件 看图 根面板由一个玻璃面板 glassPane 一个内容面板 contentPane 和一 个可选择的菜单条 JMenuBar 组成 而内容面板和可选择的菜单条放在同一分 层 玻璃面板是完全透明的 缺省值为不可见 为接收鼠标事件和在所有组件 上绘图提供方便 根面板提供的方法 Container getContentPane 获得内容面板 setContentPane Container 设置内容面 JMenuBar getMenuBar 活动菜单条 setMenuBar JMenuBar 设置菜单条 JLayeredPane getLayeredPane 获得分层面板 setLayeredPane JLayeredPane 设置分层面板 Component getGlassPane 获得玻璃面板 setGlassPane Component 设置玻璃面板 11 2 3 211 2 3 2 分层
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年西安航天基地公办学校高层次人才招聘(2人)模拟试卷及答案详解(夺冠)
- 2025年南安市部分公办学校专项招聘编制内新任教师(二)考前自测高频考点模拟试题及答案详解(全优)
- 2025年昆仑数智科技有限责任公司招聘(15人)考前自测高频考点模拟试题附答案详解(模拟题)
- 2025二手车交易合同协议
- 2025内蒙古自治区阿尔山市属国有企业外部董事拟进入人员考前自测高频考点模拟试题及答案详解(名校卷)
- 2025广东工业大学计算机学院聘用制人员招聘1人考前自测高频考点模拟试题有完整答案详解
- 2025广东广州市增城区教育局“粤聚英才粤见未来”招聘广州增城外国语实验中学教师10人考前自测高频考点模拟试题含答案详解
- 大型包工包料维修改造合同5篇
- 放射三基考试题库及答案
- 安全基本知识考试题及答案
- 质量保障方案文案(3篇)
- 1.4理解与感知1812序曲课件-高中音乐湘教版必修音乐鉴赏
- 产科分娩风险管理制度
- 洗车店卫生管理制度
- JG/T 375-2012金属屋面丙烯酸高弹防水涂料
- T/CCOA 62-2023大豆油生产技术规范
- 基础计算机知识常识试题及答案
- 2022年7月23日广东省事业单位高校毕业生招聘考试《基本能力测试》试题真题答案解析
- JT-T 495-2025 公路交通安全设施产品质量检验抽样方法
- 2025-2030中国铜软连接行业市场现状分析及竞争格局与投资发展研究报告
- 电缆缚设人工合同协议
评论
0/150
提交评论