容器(Container)继承Component类,可以容纳其它组件和容器。
Window:可独立存在的顶级窗口。
Panel:可以容纳其它组件,但要依附于Window或Applet中。
Frame类:有标题,可拖拽改变大小,初始化不可见,使用BorderLayout,设置布局管理器通过方法setLayout设置。
布局管理器分类:
FlowLayout(流式):从左到右到头换行,是Panel和Applet的默认布局,参数FlowLayout.(LEFT/RIGHT/CENTER),靠中对齐,使用组件的理想尺寸。
int hgap,int vgap; // 水平和垂直象素,默认为5。
public class MyFlowLayout extends Frame{ } // 生成一个窗体类。
super(" "); //设置标题。
setLayout(new FlowLayout(FlowLayout.CENTER)); //设置布局管理器。
BorderLayout(边界):分为五个区域,是Frame和Dialog默认布局,如果放入多个Component,后放入的会覆盖前一个。
add(button,BorderLayout.NORTH); //设置组件位置。
GridLayout(网格):组件放入格子中,从左到右,从上到下(可以用来做计算器的按钮布局)。
CardLayout(卡片式):只能看到最上面的Component。
控制组件方法:first(Container target)/ last(Container target)/ previous(Container target)/ next(Container target)。
getActionCommand()方法用于取比如按钮上的字符。
GridBagLayout(网带)
AWT中画图
创建Canvas类和Panel子类,并覆盖paint方法,每当组件出现时自动调用paint方法。
如:
drawRect(50,50,70,70); //画矩形 int x,int y,int width,int height
drawRoundRect(110,10,50,30,20,10); //画圆角矩阵 int x,int y,int width,int height,int arcWidth,int arcHeight
AWTEvent :ActionEvent、TextEvent、ItemEvent 。
ComponentEvent :WindowEvent 。
InputEvent :MouseEvent 。
适配器与内部类(推荐使用)
如:
Frame f = new Frame("TestFrame");
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});