[疯狂Java笔记]AWT组件和容器的概念

1. 组件和容器:

    1) 所有的图形元素都可以看成一个图形组件,比如一个按钮、编辑框,甚至是一个窗口都是一个图形组件,这里就简称组件;

    2) 而容器在Java图形界面中是一种特殊的组件,顾名思义它就是用来存放其它组件的,比如上面所说的窗口就是一种容器组件,在它里面可以存放按钮、编辑框等组件,这些成为他的子组件;

    3) 当然容器里也可以存放其它容器,即嵌套;


2. AWT体系的类继承结构:

   1) AWT共有两个最基本的基类,一个是Component类,另一个是MenuComponent类,它们又都是Object类的子类,前者代表普通组件,后者代表和菜单相关的组件;

   2) 一些最基本的而常见的普通组件如Button(按钮)、TextField(文本编辑框)、List(列表)等都是Component类的子类;

   3) Component类最重要的一个子类就是Container类(容器),容器也是一种组件,可以存放其它容器,也能嵌套存放容器;

   4) MenuComponent类有两个子类,一个是MenuBar,即菜单栏类,可以把菜单栏看做一个存放菜单项的容器,还有一个子类是MenuItem类,即菜单项,即菜单栏中的子菜单按钮,而MenuItem的子类是Menu类,可以构造子菜单中的各个菜单项;


3. Component的常用方法:组件的坐标都是相对于其所在容器的左上角(即相对于父组件的坐标系),都是逻辑坐标并非像素坐标,因为逻辑坐标可以实现平台无关

    1) void setLocation(int x, int y); // 设置组件左上角的坐标

    2) void setSize(int width, int height); // 设置组件的大小,单位同样是逻辑单位

    3) void setBounds(int x, int y, int width, int height); // 同时设置坐标和大小

    4) void setVisible(boolean b); // 设置该组件初始时是可见(true)还是隐藏(false),一旦隐藏连任务栏都不会显示哟!!

!!所有Component类的子类(Button、TextField等)都可以使用这些方法;


4. Container类特有的一些常用方法:

    1) 它也是Component类的一种,因此也可以使用从Component类继承而来的方法;

    2) Component add(Component comp); // 向容器末尾添加一个组件,返回的就是参数comp

    3) Component getComponentAt(int x, int y); // 返回指定坐标处的组件,如果坐标在容器之外在返回null,如果坐标处没有组件或者坐标刚好落在容器边缘则返回容器本身

    4) int getComponentCount(); // 返回容器中组件的数量

    5) Component[] getComponents(); // 返回容器中的所有组件(保存在数组中)

你可能感兴趣的:(组件,容器,awt,疯狂Java)