AWT(abstract Window Toolkit)
AWT是java发布的第一个图形界面库。AWT通过调用系统本地的库,来创建和显示控件。
AWT 的组件都是使用的native code来编写的。所以AWT 的组件扩展性不够好。现在人们更愿意使用swing。
但是AWT依然起作用。它负责为Swing提供事件处理机制,输入管理,键盘焦点管理等等。
Swing
Swing 的出现并不是为了取缔AWT,因为他本身也依赖AWT。Swing组件是通过java2D绘制(画出来的)的,所以界面较AWT更加美观,并且与本地组件的风格不同。
Swing组件绝大多数都是用java编写的(除了JFrame,JDialog,JWindow,JApplet),这就意味着,我们可以根据自己的需要,来扩展他们。
Swing 的特点
轻量级 Swing组件是独立于本地OS的,因为绝大部分的Swing控件都使用纯java编写,而不是在底层调用本地OS的API。
丰富的控件 SWING提供了丰富的高级控件:Tree,TabbedPane, slider, colorpicker, table 等控件。
高度自定义 正因为Model和View分离开的MVC架构模式,使得Swing控件可以被轻松的扩展为自定义样式的组件。
热拔插式的主题感官 Swing 应用程序的感官可以在运行时任意切换。
Swing的MVC框架模式
Model: 代表了组件的数据。如Button的颜色,长,宽等都是内部用字段来存储的数据。
View: 代表了可显示的组件。它一定程度上反映了组件的内部数据。如JLabel显示文本。
Controller: 获取到用户从视图组件输入的数据,然后反映到组件的Model层,从而更新组件的数据,组件内部数据的更新,往往又会通过Controller
来反应到View层。以此来达到交互的目的。
Swing的整体类结构
Component |
Component为Swing中不包含菜单的UI控件提供了抽象基础。Component代表了图形对象。 |
Container |
Container代表了一个可以容纳其他Swing组件的组件。 |
JComponent |
JComponent对象是所有Swing UI组件的基类。 |
框架
JFrame:窗体
Dialog:对话框
UI 控件
JLabel |
用于显示普通的文本 |
JButton |
带文本或者图像的普通按钮 |
JCheck Box |
复选框:勾选或者不勾选2中状态 |
JRadioButton |
单选按钮:选中此选项或者选择其他。通常多个单选按钮为一组 |
JTextField |
单行文本输入框 |
JPasswordField |
单行密码输入框,密文显示 |
JTextArea |
多行多列文本输入域 |
JList |
可滚动的文本项目显示列表 |
JComboBox |
A JComboBox component presents the user with a to show up menu of choices. |
ImageIcon |
实现了Icon接口的组件。用来显示Icon图像。 |
JScrollbar |
滚动条。使用户能通过滚动条来改变基于一个范围的值。如音量,图片的放大或者缩小程度。 |
JOptionPane |
各种类型的对话框,提供消息提示。 |
JFileChooser |
文件或者文件夹选择对话框 |
JColorChooser |
颜色选择面板 |
JProgressBar |
显示了程序执行某项工作的进度百分比 |
JSlider |
A JSlider lets the user graphically select a value by sliding a knob within a bounded interval. |
JSpinner |
A JSpinner is a single line input field that lets the user select a number or an object value from an ordered sequence. |
布局管理器
BorderLayout |
描述待补充 |
FlowLayout | 描述待补充 |
BoxLayout | 描述待补充 |
CardLayout | 描述待补充 |
GridLayout | 描述待补充 |
GridBagLayout | 描述待补充 |
GroupLayout | 描述待补充 |
SpringLayout | 描述待补充 |
其他
java.awt.Color:基本颜色定义
java.awt.Font:基本字体定义
java.awt.Cursor:光标操作定义