第四章Java图形用户界面;图形用户界面或图形用户接口(Graphical User Interface,GUI)是指采用图形方式显示的计算机操作环境用户接口图形用户界面为用户与程序友好地交互提供了一种机制,由标签、文本、单选按钮、复选框、列表框、窗口等组成,用户通过鼠标、键盘或其他方式与这些组件交互Java提供了一系列的用户界面组件,这些组件主要包含在两个包中,一个是抽象窗口工具包(AWT),包名为java.awt;另一个是Swing包,包名为java.swingJava中,图形用户界面由组件、布局管理和事件委托处理三部分组成;组件是响应用户操作的可视图形控件,它们置于容器组件中形成一个具有包含关系的层次结构,由布局管理器安排组件在容器中的位置能够产生事件的组件称事件源,不同的组件产生不同类型的事件,同一组件产可能产生多种事件组件提供添加监视事件发生的监视器方法,对感兴趣的事件注册监听。将一个包含相关信息的事件对象传递给事件处理程序,即为提供相应的方法对事件进行业务处理;创建一个图形用户界面的方法如下:(1)创建一个顶级的容器组件,一般是继承框架(Frame)的应用程序主窗口,它包含板框、标题栏、控制菜单和内容面板(Contentpane)的容器(2)按指定的布局管理器向容器中添加组件,给事件源组件添加事件监视器,注册事件处理(3)设计事件处理程序,重新处理方法(4)显示图形用户界面;组件是抽象的概念,通俗的说是一些符合某种规范的类或代码组合在一起就构成了组件,对外提供多个接口或方法供调用,从而完成某些特定的功能Java 中所有的 UI 组件都是以 Component 类为根Swing 是 AWT 的扩展,它提供了更强大和更灵活的组件集合与 AWT 组件不同,Swing 组件实现不包括任何与平台相关的代码Swing组件是纯Java代码,与平台无关,保证代码的可移植性。在Swing组件中,除了JFrame、JWindow、JDialog和Japplet外,都属于轻量级组件;在javax.swing包中,定义了两种类型的组件:顶层容器(JFrame,JApplet,JDialog和JWindow)和轻量级组件Swing组件都是AWT的Container类的直接子类和间接子类 java.awt.Component    -java.awt.Container       -java.awt.Window          -java.awt.Frame-javax.swing.JFrame          -javax.Dialog-javax.swing.JDialog          -javax.swing.JWindow       -java.awt.Applet-javax.swing.JApplet       -javax.swing.Box       -javax.swing.Jcomponet;import java.awt.*; import javax.swing.*; class Test extends JFrame { public FirstFrame(String title) { super(title); this.setSize(400,300); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } public class MainApp { public static void main(String[] args) { new Test ("GUI 演示"); } } ;AWT(AbstractWindowToolkit)为抽象窗口工具包,是Java提供的用来建立和设置Java的图形用户界面的基本工具。AWT是Swing的基础,Swing比AWT提供了更多的组件和外观,它能够满足AWT不能满足的图形化用户界面发展的需要Swing组件的实现不包括任何于平台相关的代码,由于它是纯Java代码,因此它与平台是无关的。下面将通过文本、按钮、列表和窗口面板等介绍Swing组件;三种文本组件JLable、JTextField、JTextAreaJLableJTextField 这个组件与下一个 JTextArea 组件都比较复杂。这个组件是文本框,只能输入单行的文本。 当文本区域的大小超出了可显示的范围时,在默认情况下,不会自动出现滚动条JTextArea 这个组件是文本区域