文档介绍:第9章 Swing图形用户界面(GUI)设计
[内容提要]
本章讲述Java GUI的发展以及如何使用强大的Java 2 Swing库进行GUI程序设计,包括AWT和Swing的区别和联系、各种常见组件和控件的使用。
1
Swing图形用户界面设计概述
SUN的AWT:Java处理图形用户界面的初始途径。
AWT库处理图形的基本方法:把这些元素的创建和行为交给目标平台上的本地GUI工具箱进行处理。
理论上“一次编写,随处运行”。
实际上“一次编写,随处调试”。
IFC( Foundation Classes)
scape合作开发出:Swing。
2
Swing的AWT关系
AWT为每一个组件分配一个操作系统窗口。
大型应用程序中,大量这样的窗口会占用大量资源降低系统性能。
Swing的很多用户界面元素,如菜单、按钮等,都是画在他们的容器中的。
占用更少的系统资源,增加了更多的组件,且允许控制程序的外观。
Swing并不是完全摒弃AWT,而是一组建立在AWT之上的包,它提供了大量预建的类,
import .*;
import .*;
3
JApplet:。
JButton: 按钮或命令按钮。
JCheckBox: 复选框。
JCheckBoxMenuItem: 复选菜单项。
JComboBox: 组合框。
JComponent: Swing组件的基类。
JDialog: 对话框窗口的基类。
JLabel: 标签项。
JList: 列表框。
JMenu: 菜单。
JMenuBar: 菜单条。
JMenuItem: 菜单项。
JPanel: 通用的轻量容器。
JPasswordField: 文本框(用来输入口令)。
4
JPopupMenu: 弹出式菜单。
: 分隔线(弹出式菜单专用)。
JProgressBar: 进度条。
JRadioButton: 单选按钮。
JRadioButtonMenuItem: 单选菜单。
JScrollBar: 滚动条。
JTabbedPane: 标签板。
JTable: 二维表。
JTextArea: 文本域。(多行显示)
JTextField: 文本行(可编辑)。
JTextPane: 文本板。
JToolBar: 工具栏。
JWindow: 窗口。
5
Swing图形用户界面设计概述
在Java的GUI程序中,需要一个框架窗口(JFrame)来放置其它的层板和组件。
JFrame的默认大小为0×0并且是不可见的,
用setBounds方法设置框架的大小,
setVisible(true)显示窗口
6
例9-1
7
文本与字体
“Hello World”程序中演示了默认字体字符串的显示。
但是我们常常需要使用不同的字体,通过setFont()方法可以改变字体。
可以根据字体名来指定字体。
想找出某个计算机上的可用字体,你可以通过调用GraphicsEnvironment类的getAvaiilableFamilyNames方法实现。
该方法返回包含所有可用字体名的字符串数组。GraphicsEnvironment类描述了用户系统上的图形环境,可以使用静态方法getLocalGraphicsEnviroment来得到该类的一个实例。
下面是字体显示的例子:
8
例9-2
9
图形设计
Java 2D提供了和设备无关的坐标系统,它不仅
负责用户坐标和设备坐标的转换,还提供了一些
非常有用的二维绘图功能,包括几何图形、直线
式样、图像以及上一节的文本与字体处理。
一、Graphics2D
Java2D的绘图环境是一个Graphics2D对象,他
源自于Graphics,
如果要使用Java2D的功能,需要将Graphics对象转化为Graphics2D对象。
10