图形用户界面(Graphics User Interface, GUI) 是用户与程序交互的窗口,它比基于命令行的界面更直观并且更友好。
GUI的基本类库位于java.awt包中, 这个包也被称为抽象窗口工具集(Abstract Window Toolkit, AWT)。AWT按照面向对象的思想来创建GUI,它提供了容器类、组件类和布局管理器类。
随着Java的发展,AWT中的大部分组件已经渐渐被淘汰,它已经不能适应发展的需要,不能满足开发功能强大的用户界面的需要。这时Swing出现了,它是建立在AWT之上的组件集(对AWT组件的扩展),在不同的平台上都能保持组件的界面样式,因此得到了非常广泛的应用。
注:AWT和Swing之间的最大的区别在于Swing组件的实现与本地实现无关,所以能保证Swing组件在不同的平台上都能显示出原有的样式,并且Swing组件比AWT组件具有更多的功能。
AWT组件都在java.awt包下面,Swing组件都在javax.swing包下面
例如
AWT和Swing中都有按钮,
java.awt.Button
javax.swing.JButton
AWT和Swing中都有复选框,
java.awt.Checkbox
javax.swing.JCheckBox
AWT和Swing中都有对话框,
java.awt.Dialog
javax.swing.JDialog
AWT和Swing中都有菜单组件,
java.awt.Menu
javax.swing.JMenu
...
注1:它们之间的名字的特点
注2:javax.swing中绝大大多数的组件都是继承了java.awt中Component