文档介绍:第7讲图形用户界面
1
图形用户界面
主要内容
Java GUI概述
Swing组件
Swing容器(重点:JFrame类)
图形与绘图
事件处理与Swing常用组件
Java事件处理机制
常用组件
布局管理器
2
图形用户界面
Java GUI概述
AWT与Swing
AWT组件: Java 2版本之前的Java平台提供的一套图形用户界面;;重量级组件,平台相关;没有弹性,缺乏效率。
Swing组件:建立在AWT组件之上;轻量级组件,平台无关;有弹性;效率高;丰富的视觉感受。
3
图形用户界面
Swing组件
Swing组件都是AWT的Container类的直接子类和间接子类。
4
图形用户界面
Swing组件
Swing组件以"J"开头,除了有与AWT类似的按钮(JButton)、
标签(JLabel)、复选框(JCheckBox)、菜单(JMenu)等基本组件外,
还增加了一个丰富的高层组件集合,如表格(JTable)、树(JTree)。
Swing组件从功能上分:(参见表7。1)
容器组件(顶层容器,中间层容器,特殊容器)
原子组件(基本组件,不可编辑组件,可编辑组件)
原子组件必须加在容器组件内。
Swing容器
容器(Container)也是一个类,ponent的子类,因此容器本身也是一个组件,具有组件的所有性质,但是它的主要功能是容纳其它组件和容器。
1)容器可以简化图形化界面的设计,以整体结构来布置界面。
2)所有的容器都可以通过add()方法向容器中添加组件。
5
图形用户界面
Swing容器层次结构
顶层容器
JLayeredPane
JRootPane
JContentPane
JGlassPane
JMenuBar
JRootPane(根面板):虚拟容器,无法操作。
JLayeredPane(层次面板):管理菜单栏和内容面板。
JContentPane( 内容面板):Swing组件不能直接加入到的顶层容器中,
必须添加到顶层容器的内容面板上。
JGlassPane(玻璃面板):用来产生绘图效果及触发窗口程序的各种事件。
注:中间层容器没有根面板,不能在桌面上浮动,必须添加到顶层容器中才能显示。
6
图形用户界面
容器分类
顶层容器窗体
JFrame; JWindow; JApplet;
对话框JDialog(JOptionPane)
中间层容器
面板JPanel; 滚动窗格JScrollPane, JScrollBar; 拆分窗格JSplitPane; 索查标签窗格JTabbedPane
特殊容器
内部窗体JInternalFrame; 分层窗格JLayeredPane; 根窗格JRootPane
7
图形用户界面
框架窗口是一种窗体,其中带有边框、标题栏及用于关闭和最大/最小化窗口的图标等,简称窗口。
JFrame构造方法主要有:
JFrame(),建立一个无标题的JFrame。
JFrame(String title),建立一个标题为title的JFrame。
窗口的基本操作:
(1) 创建窗口 JFrame frame=new JFrame();
(2) 设置标题 JFrame frame=new JFrame(“窗口示例”);
或者:
JFrame myFrame=new JFrame();
(“窗口示例”);
(3) 设置初始位置 setLocation(int x,int y)
(4) 设置大小 setSize(int width,int height)
(5) 设置图标 setIconImage(Icon icon)
8
图形用户界面
框架窗口JFrame
(6) 定义关闭行为
setDefaultCloseOperation(int operation)。operation取值:
DO_NOTHING_ON_CLOSE:当窗口关闭时,不做任何处理;
HIDE_ON_CLOSE:当窗口关闭时,隐藏这个窗口;
DISPOSE_ON_CLOSE:当窗口关闭时,隐藏并处理这个窗口;
EXIT_ON_CLOSE:当窗口关闭时,退出程序。
默认是HIDE_ON_CLOSE。
(7) 添加组件两种方式:
用getContentPane( )方法获得JFrame的内容面板,再对其加入组件: ().add(ponent)
建立一个JPanel