java图形界面swing设计

上传人:飞*** 文档编号:48569362 上传时间:2018-07-17 格式:PPT 页数:279 大小:1.55MB
返回 下载 相关 举报
java图形界面swing设计_第1页
第1页 / 共279页
java图形界面swing设计_第2页
第2页 / 共279页
java图形界面swing设计_第3页
第3页 / 共279页
java图形界面swing设计_第4页
第4页 / 共279页
java图形界面swing设计_第5页
第5页 / 共279页
点击查看更多>>
资源描述

《java图形界面swing设计》由会员分享,可在线阅读,更多相关《java图形界面swing设计(279页珍藏版)》请在金锄头文库上搜索。

1、第5章 图形界面程序设计本章要点Swing简介 用Swing创建图形界面 Swing容器和组件的层次 布局管理器 事件处理基本原理 Swing组件的其它特性本章要点顶级容器组件 通用容器组件 专用容器组件 基本控件 不可编辑组件 交互的格式组件 文本组件Swing简介F图形用户界面 图形用户界面:Graphical User Interfaces, 简称GUI已经成为面向用户的应用程序的基本要 求 几乎所有的单机版程序和客户端/服务器 程序(Client/Server)的客户端部分都采用图形用户 界面 图形用户界面的好坏,图形界面程序的 编写性能,直接影响一种编程语言的实用性Swing简介FJ

2、ava的图形界面工具开发历史AWT(Abstract Window Toolkit,抽象 视窗工具包),早期的Java图形界面工具包设计目标是为程序员构建一个通用的 GUI,使其在所有平台上都能正常显示 但这个目标并未达到,早期的AWT产生 的图形界面质量欠佳 工具包过于庞大,太慢,难于使用Swing简介FJava的图形界面工具开发历史Swing:新一代的图形界面工具 从Java 1.2版开始提供 相对AWT而言更为轻便,更容易编程, 而且功能也更为灵活、强大 目前AWT已经基本上被淘汰,新的Java 图形界面程序都用Swing编写Swing简介FJava基础类的组成部分Swing组件,提供了

3、图形界面所需的所 有组件,从框架、对话框直到按钮、标签; 界面风格:让图形界面选择不同的风格 ; 辅助技术:让辅助阅读器顺利读取信息 ; Java 2D 编程接口:让开发人员方便地 产生高质量的二维平面文字、图形和图像; 拖放支持:提供了Java程序和本机系统 应用程序之间的拖放支持。本章要点Swing简介 用Swing创建图形界面 Swing容器和组件的层次 布局管理器 事件处理基本原理 Swing组件的其它特性用Swing创建图形界面F用Swing创建图形界面步骤:(1) 导入Swing包 (2) 选择界面风格 (3) 设置顶层容器 (4) 设置按钮和标签 (5) 将组件放到容器上 (6)

4、 为组件增加边框 (7) 处理事件用Swing创建图形界面F(1) 导入Swing包下面的语句导入主Swing包: import javax.swing.*; 大部分Swing程序用到了AWT的基础底 层结构和事件模型,因此需要导入两个包: import java.awt.*; import java.awt.event.*; 如果图形界面中包括了事件处理,那么 还需要导入事件处理包: import javax.swing.event.*;用Swing创建图形界面F(2) 选择界面风格Swing允许选择程序的图形界面风格 常用的有Java风格,Windows风格, CDE/ Motif风格等等

5、下面的代码用于选择图形界面风格,这 里选择的是跨平台的Java界面风格。 try UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAnd FeelClassName(); catch (Exception e) 用Swing创建图形界面F(3) 设置顶层容器图形界面至少要有一个顶级Swing容器 顶级Swing容器为其它Swing组件在屏幕 上的绘制和处理事件提供支持 常用的顶级容器: JFrame(框架):表示主程序窗口 JDialog(对话框):每个JDialog对 象表示一个对话框,对话框属于二级窗口 JApplet(小程序)

6、:在浏览器内显 示一个小程序界面用Swing创建图形界面F(3) 设置顶层容器public static void main(String args) / 创建一个JFrame对象,作为顶层容器 对象JFrame frame = new JFrame(“SwingApplication“);. . . / 添加其它组件/ 调整窗体、组件的大小和位置frame.pack();/ 显示窗体frame.setVisible(true); 用Swing创建图形界面F(4) 设置按钮和标签下面的代码生成一个按钮: JButton button = new JButton(“这是一个 按钮“); butt

7、on.setMnemonic(KeyEvent.VK_I); button.addActionListener(.建立一个动 作监听器.);用Swing创建图形界面F(4) 设置按钮和标签下面这段代码用来生成标 签:/ 定义一个字符串,用于存储标签上 显示的文字 private static String labelPrefix = “按钮 点击的次数:“; private int numClicks = 0; / 创立一个标签 final JLabel label = new JLabel(labelPrefix + “0 “);用Swing创建图形界面F(5) 将组件放到容器上为便于排列,

8、组件一般都不直接 放在框架上,而是放在一个或多个面板上 下面的代码将按钮和标签放到面 板上JPanel panel1 = new JPanel(); panel1.setLayout(new GridLayout(0, 1); panel1.add(button); panel1.add(label);用Swing创建图形界面F(5) 将组件放到容器上面板一般也不直接放在框架上,而是放 在框架的窗格上 下面的代码将面板放在框架的窗格上:frame.getContentPane().add(panel1, BorderLayout.CENTER);用Swing创建图形界面F(6) 为组件增加边框

9、下面的代码为面板增加边框: panel1.setBorder(BorderFactory.createEm ptyBorder(30, 30, 10, 30); 边框对象利用BorderFactory对象的静态 函数createEmptyBorder产生用Swing创建图形界面F(7) 处理事件本例中有两个事件处理过程:点击按钮 事件和视窗关闭事件。下面是事件处理类 button.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) numClicks+;label.setText(l

10、abelPrefix + numClicks); ); frame.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); );用Swing创建图形界面F编译与运行程序 将程序保存为“SwingApplication.java”运行下面的命令进行编译: javac SwingApplication.java 编译后生成3个class文件: SwingApplication.class SwingApplication$1.class SwingApplicati

11、on$2.class用Swing创建图形界面F编译与运行程序 程序的运行与其它Java程序相同,敲入 java和入口类的类名:java SwingApplication 运行后的界面如右图所示:本章要点Swing简介 用Swing创建图形界面 Swing容器和组件的层次 布局管理器 事件处理基本原理Swing容器和组件的层次FSwing图形界面的三个层次顶级容器:框架、对话框、小程序 中间级容器:面板 原子组件:按钮和标签等 实际中,虽然顶级容器-中间级容器-底 层组件的三层结构不会改变,但每层中可能会分出更 多更细的级别,以满足实际需要Swing容器和组件的层次FSwing图形界面的层次 例

12、:一个英制-公制转换的Java程 序界面Swing容器和组件的层次FSwing图形界面的层次在这个图形界面程序中包括的组 件: 一个主框架 一个窗格 四个面板 两个文本框 两个滑块 两个下拉框Swing容器和组件的层次FSwing图形界面的层次整个图形界面程序的层次关系图 :Swing容器和组件的层次F顶层框架 顶层框架是一个JFrame对象,它 就是我们平时所见到的应用程序图形界面本 身 一个简单的框架至少包括边框、 顶栏、以及内容窗格 顶栏位于框架的顶部,它的右侧 放置最大化、最小化和关闭按钮,左侧放置 框架菜单 内容窗格是框架的主体部分,所 有的二级容器、组件都只能放在内容窗格内Swin

13、g容器和组件的层次F顶层框架 内容窗格相当于在框架的内部铺 设的一个大面板,所有内容都放在这个面板 上 这个面板并非是假设,它是实际 存在的。内容窗格作为JFrame对象的一个 成员变量,它的类型就是JPanel,也就是面 板类 通过JFrame对象的 getContentPane()函数获得内容窗格:JFrame myFrame = new JFrame(); JPanel contentPane = myFrame.getContentPane();Swing容器和组件的层次F顶层框架 JFrame框架的成员: rootPane(根窗格) layeredPane(分层窗格) content

14、Pane(内容窗格) glassPane(玻璃窗格)更复杂的图形界面程序会有菜 单栏、快捷工具栏和状态栏Swing容器和组件的层次F顶层框架 各窗格之间的层次图Swing容器和组件的层次F顶层框架 组 件之间的 关系图 根 窗格位于 最基本的 位置 根 窗格下属 分层窗格 与玻璃窗 格 分 层窗格里 包含内容 窗格和菜 单栏Swing容器和组件的层次F根窗格 框架对象(或者对话框对象、 JApplet小程序对象)中包括一个JRootPane 对象rootPane根窗格中包括了分层窗格、内容 窗格、工具栏以及玻璃窗格 根窗格的作用是管理这些子窗格 ,它本身是不可见的,用户根本不知道有根 窗格的存

15、在 调用getRootPane函数来获得根窗 格: JFrame frame = new JFrame(); JRootPane rootPane = frame.getRootPane();Swing容器和组件的层次F根窗格 根窗格的主要功能都被封装入主 框架中,可以通过主框架的函数直接访问各 功能窗格 唯一需要用根窗格的函数直接设 定的功能是设定缺省按钮 根窗格的setDefaultButton函数可 以将一个按钮设置为缺省按钮 缺省按钮的作用是响应用户的回 车键消息Swing容器和组件的层次F根窗格 在用户登录时,当用户输入用户 名和密码之后,一般习惯于直接敲回车登录 ,下面的代码实现这

16、一功能: JRootPane rootPane = frame.getRootPane(); rootPane.setDefaultButton(button1); 设置了缺省按钮的登录界面如下 图所示:Swing容器和组件的层次F分层窗格 分层窗格(layeredPane)是根窗 格的成员,在分层窗格中包括内容窗格和菜 单栏 分层窗格是一个多层的容器,相 互重叠的组件可以按照它们重叠的次序在界 面上显示,上层的组件覆盖在下层组件之上 分层窗格的主要作用是为其中的 每一层提供一个深度值(z方向,也就是垂 直于屏幕方向的数值)Swing容器和组件的层次F分层窗格 当你将一个组件放在分层窗格上 的时候,你需要指定它的深度 深度值越大,组件就越靠近上层 屏幕是一个

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号