一、 GUI,全称是Graphics User Interface的缩写,即图形用户界面的缩写。和命令行的程序操作相对应,相比之下,GUI更形象具体。既然是图像化界面,就要有窗口、按钮、文本、图片、图形等,这些类在java中都有实现,包含在java.awt包中。 二、 Continer和Component是awt的核心类。Component,中文意思是组件、成分,是组成图形化界面的最基本元素,如一个按钮、一个文本框。一般的,一个Component无法独自显示,必须放在Container中。Container,中文意思是容器,可以存放,或者说摆放Component。Container又是Component的子类,也就是说Container也可以容纳Container。 三、 常用的Container有两个:Window和panel。Window,中文意思是窗口,其对象是可以独立停泊的*窗口。panel,中文意思是嵌板,可以放Component,但不能独立存在,必须放在其他Container中。 四、 Window,其子类有Frame、Dialog。窗口的展示,在实际中一般使用frame,Dialog一般用于和用户交互。和Frame相比,其父类Window没有边界和菜单栏。创建窗口,一般用Frame或者Frame的子类对象。 Panel,其子类有applet,名字看的挺熟,但据说现在不常用了,因为它主要用在网页上,现在网页上有javascript,就不用他了。 五、 常用方法: setBounds(int x,int y,int width,int height);//Component的方法,设置边界位置和长宽,x和y表示组件的左上角位置,width和height 表示组件的长宽。 setsize(int x,int y);//设置组件的长宽。 setLocation(int x,int y);//设置组件的位置。 Setbackgroud(Color c);//设置背景色。 Setlayout(LayoutManager m);//设置布局方式。 setvisible(boolean b);//设置是否可见,一定要放到最后。 setTitle(String s);//设置标题栏的名字。 setResizable(boolean b);//设置窗口的大小和变。 注意:这里的长度是指像素值。 六、 布局管理器,在Container中管理Component的布局。布局管理器,在java中是一个接口,LayoutManager。他有许多实现他的子类。常用的有FlowLayout,BorderLayout,GridLayout。 FlowLayout,FlowLayout是Panel的默认布局管理器,先从左到右,再来第二行。也可以设置组件的间距,没有设置使用默认值。其对齐方式默认为居中对齐。 FlowLayout的构造方法:FlowLayout(FlowLayout.LEFT,20,30);FlowLayout(FlowLayout),FlowLayout();没有参数使用默认参数。 BorderLayout,BorderLayout是Frame类的默认布局管理器。BorderLayout将整个容器的布局划分成东、西、南、北、中五个区域,组件只能被添加到指定区域。如不指定区域,默认添加到中间。每个区域只能添加一个,添加两个,前一个被覆盖。南北在水平方向放缩,东西在竖直方向放缩。 GridLayout,GridLayout型布局管理器将空间划分成规则的矩形网格,每个单元格的区域大小相同,组建被添加到每个单元格中,先从左到 右,然后换行。GridLayout构造方法中指定分割的行数和列数。GridLayout(3,4),即三行四列。 另外,Container还提供了设置布局管理器的方法:void setLayout(LayoutManager mgr) ;可以随意设置。在Frame和Panel的构造方 法中,也都提供了指定布局管理器的方法。 最后,如果用户不想用布局管理器,可以自己设置布局,但要把布局管理器清空,setlayout(null)。 七、 事件监听,事件,Event;监听,Listener。顾名思义,监听某事件的发生,发生则产生相应的操作。按钮需要监听、键盘 需要监听、鼠标需要监听、窗口的关闭等需要监听、TextField等输入框需要监听回车换行等。 监听的原理就是:首先有一个监听器接口ActionListener,有其子类和new出的对象;某事件Event的 addListener(ActionListener)方法接受其子类的对象,这是Event和Listener取得联系,此为注册;最后Event发生时,传递封 装好的ActionEvetn信息。 上述的描述中,有Event,Listener;除这些外,还有adapter,名为适配器,他实现了Listener接口,所以监听时不需再 new出实现了Listener接口的子类对象,只需new出adapter的对象即可。这样减少了工作量,因为如果实现接口,那么接口中的 方法都要实现,其实我们一般只用其中的几个方法。