1 AWT
-Abstract WIndow Toolkit 都封装在了这个包里。抽象窗口:因为java是跨平台的,具体窗口可能是windows的 linux的,理想中不同平台出来的是一样的窗口,但是,AWT并没有实现完全的跨平台,最终出来的窗口是不一样的。Swing也离不开AWT。
-AWT包括了很多类和接口,用于Java Application的GUI(Graphics User Interface)编程,GUI的各种元素由Java类来实现,使用AWT所涉及的类一般在java.awt包及其子包中。
-Container和Component是AWT中的两个核心类。
Component:代表了我们的图形元素,比如说Checkbox,Button等,Component里有一种比较特殊的叫Container,Container是容器,用来容纳其他Component的元素,比如说窗口。Container是一种Component,但是她可以容纳Component,也可以容纳Container。一般的Component对象不能独立地显示出来,必须将“放在”某一地Container对象中才可以显示出来。
Container分两种:
-Window:独立窗口,分两种:Frame、Dialog;Dialog分两种:模态(不处理对话框,不点掉,背后的主程序应用不了)、非模态(对话框点不点掉无所谓,主窗口照样运行)
-Panel:不能作为应用程序的独立窗口显示,Panel只能装在WIndow里显示。
2 布局管理器
管理Component在Container中地布局,不必直接设置Component位置和大小。
每个Container都有一个布局管理器对象,当容器需要对某个组件进行定位或者判断其大小尺寸时,就会调用其对地布局管理器,调用Container和setLayout方法改变其布局管理器对象。
(你只管往里扔元素,怎么排是布局管理器的事情)
AWT提供了5种布局管理器类:
FlowLayout(Panel类的默认布局管理器)(流水线式的)
BorderLayout(Frame的默认)(分成东西南北中)
GridLayout(分成小格)
CardLayout
GridBagLayout
2 事件监听
【事件模型
钩子函数(回调函数)
有多态存在。Button里面调了代码,但是实际调的是哪个不知道,你往上挂就行了,你挂什么人家调什么。(实现特定的接口)
(button不知道你是哪个类,但是知道你一定实现了这个接口,button调用这个接口里的方法,你实际new的谁,调的就是谁的方法)】
Button b=new Button("Press me!");
Monitor mh=new Monitor();
b.addActionListener(bh);//mh监听着ActionEvent的发生,当你ActionEvent的发生时候,请你调用actionPerformed()方法
class Monitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
System.out.println("A button has been pressed");
}
}
ActionEvent:封装了某种事件的具体信息
当我们的button被按下的时候,它发出的这件事情叫ActionEvent。(动作事件)),Monitor实现了ActionListener接口,必须实现actionPerformed方法,