1.概念
早期,电脑向用户提供的是单调、枯燥、纯字符状态的“命令行界面(CLI)”。就是到现在,我们还可以依稀看到它们的身影:在Windows中开个DOS窗口,就可看到历史的足迹。后来,Apple公司率先在电脑的操作系统中实现了图形化的用户界面(Graphical User Interface,简称GUI),但由于Apple公司封闭的市场策略,自己完成电脑硬件、操作系统、应用软件一条龙的产品,与其它PC不兼容。这使得Apple公司错过了一次一统全球PC的好机会。
后来,Microsoft公司推出了风靡全球的Windows操作系统,它凭借着优秀的图形化用户界面,一举奠定了操作系统标准的地位。这也造就了世界首富—比尔.盖茨和IT业的泰山北斗微软公司。
在这图形用户界面风行于世的今天,一个应用软件没有良好的GUI是无法让用户接受的。而Java语言也深知这一点的重要性,它提供了一套可以轻松构建GUI的工具。在本章和下一章中,我们将向你充分证明这一点。
java中提供了三个主要包做GUI开发:
- java.awt包-主要提供字体/布局管理器
- javax.swing包-主要提供各种组件
- java.awt.event包-事件处理,后台功能的实现
2.Swing
-
概念
Swing是纯Java组件,使得应用程序在不同的平台上运行时具有相同外观和相同的行为.
Swing中的大部分组件类位于javax.swing包中.
Swing中的组件非常丰富,支持很多功能强大的组件.
框架:
-
组件
swing组件主要可分为三个部分,后面会详细介绍
(1)顶层容器::常用有JFrame,JDialog
(2)中间容器:JPanel,JOptionPane,JScrollPane,JLayeredPane 等,主要以panel结尾。
(3)基本组件:JLabel,JButton,JTextField,JPasswordField,JRadioButton 等。
-
顶层容器
# 组件 描述 1 JFrame 一个普通的窗口(绝大多数 Swing 图形界面程序使用 JFrame 作为顶层容器) 2 JDialog 对话框 -
中间容器
# 组件 描述 1 JPanel (相当于div) 一般轻量级面板容器组件(作为JFrame中间容器) 2 JScrollPane 带滚动条的,可以水平和垂直滚动的面板组件 3 JSplitPane 分隔面板 4 JTabbedPane 选项卡面板 5 JLayeredPane 层级面板 -
基本容器
# 组件 描述 1 JLabel 标签 2 JButton 按钮 3 JRadioButton 单选按钮 4 JCheckBox 复选框 5 JToggleButton 开关按钮 6 JTextField 文本框 7 JPasswordField 密码框 8 JTextArea 文本区域 9 JComboBox 下拉列表框 10 JList 列表 11 JProgressBar 进度条 12 JSlider 滑块 -
容器组件
Java的图形用户界面的基本组成部分是组件,组件是一个以图形化的方式显示在屏幕上并能与用户进行交互的对象:
组件不能独立地显示出来,必须将组件放在一定的容器组件中才可以显示出来.
容器组件可以容纳多个组件,通过调用容器组件的add方法向容器中添加组件.
窗口和面板是最常用的两个容器组件.
3.API介绍
-
JFrame
JFrame用于在Swing程序中创建窗体;
JFrame类的构造方法:
构 造 方 法 说 明 JFrame() 创建新窗体,该窗体初始为不可见 JFrame(String title) 创建新窗体,使用参数title指定标题,该窗体初始为不可见 JFrame常用方法:
void setSize(int width, int height)//设置窗口大小
void setVisible(boolean b)//设置窗口是否可视化
void setTitle(String title)//设置窗口标题
void setResizable(boolean resizable) //设置窗口是否可拉伸
void setLocation(int x,int y)//设置窗口位置
void setBounds(int x, int y, int width, int height)//设置窗口的x,y位置,窗口大小x,y.
void setLocationRelativeTo(null);//设置窗口居中
void setDefa