1.Swing和AWT
- 对Java运行的每一个平台,AWT的组件自动地通过它们各自的代理映射成特定平台(platform-specific)的组件,这些代理称为同位体(peer)。AWT适用于开发简单的图形用户界面,但不适用于开发复杂的GUI项目。AWT容易发生与平台特性相关的故障,因为它基于同位体的解决方案非常依赖底层平台。
- 大多数Swing组件都是直接用Java代码绘制在画布上,而
java.awt.Window或java.awt.Panel子类的组件例外,它们必须使用特定平台上本地的GUI来绘制。Swing组件更少地依赖目标机器上的平台,更少使用本地的GUI资源。 - 不依赖本地GUI的Swing组件称为轻型组件(lightweight component),AWT组件称为重型组件(heavyweight
component)。
2.GUI类可以分成三组:容器类(container class)、辅助类(helper class)和组件类(component class)。
- 容器类用来包含其他组件,例如:JFrame、JPanel和JApplet等。
- 辅助类是组件和容器用来绘制和放置对象的,例如:Graphics、Color、Font、FontMetrics和Dimension等。
- 图形用户界面(GUI)组件类都是JComponent类的子类,例如:JButton、JTextField、JTextArea、JComboBox、JList、JRadioButton和JMenu等。
3.JFrame、JApplet、JDialog和JComponent类及其子类都分组包含在javax. swing包中。其他类在java.awt中。
4.Swing GUI组件Component类是所有用户界面类的父类,而JComponent类是所有轻型Swing组件类的父类。由于JComponent是一个抽象类,所以,不能用new JComponent()创建JComponent的实例,但是,可以使用JComponent具体子类的构造方法来创建JComponent的实例。
5.容器类
容器类是GUI组件,用于盛装其他GUI组件的容器。Window、Panel、Applet、Frame和Dialog都是AWT组件的容器类。要使用Swing组件作容器,可以使用Component、Container、JFrame、JDialog、JApplet和JPanel。
- Container用来组织组件。框架Frame、面板Panel和applet都是容器的例子。
- JFrame是不能包含在另一个窗口内的窗口。在Java GUI应用程序中,它是包含其他Swing用户界面组件的容器。
- JDialog是一个弹出式窗口或消息框,一般用作接收来自用户的附加信息或通知事件发生的临时窗口。
- JApplet是Applet的一个子类。要创建基于Swing的Java applet必须扩展JApplet。
- JPanel是一个存放用户界面组件的不可见的容器。面板可以嵌套,可以把面板放在包含面板的容器中。JPanel也可以作为画布来画图。
6.GUI辅助类
辅助类都不是Component 的子类,例如Graphics 、Color 、Font 、FontMetrics 、Dimension和LayoutManager等。它们用来描述GUI组件的属性,例如,图形环境、颜色、字体以及大小等。
- Graphics是一个抽象类&#x