疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

AWT容器—[疯狂java讲义]


 

AWT容器
 
         如果从程序员的角度来看一个窗口时,这个窗口不是一个整体(有点庖丁解牛的感觉),而是由多个部分组合而成的。
 
        任何窗口都可被分解成一个空的容器,容器里盛装了大量基本组件,通过设置这些基本组件的大小、位置等属性,就可以将该空容器和基本组件组成一个整体的窗口。实际上,在笔者看来,图形界面编程非常简单,它非常类似于我们儿时玩的拼图游戏,容器类似于拼图的“母板”,而普通组件(如Button, List之类)则类似于拼图的图块。创建图形用户界面的过程就是完成拼图的过程。
 
        容器(Container)是Component的子类,因此容器对象本身也是一个组件,具有组件的所有性质,可以调用Component的所有方法,Component有如下几个常用方法来设置组件的大小、位置和可见性等。
 
    1、setLocation(int x, int y):设置组件位置。
    2、setSize(int width, int height):设置组件的大小。
    3、setBounds(int x, int y, int width, int height):同时设置组件的位置、大小。
    4、setVisible(Boolean b):设置该组件的可见性。
 
除此之外,容器还具有能盛装其他组件的功能,容器类(Container)主要提供了如下几个常用方法来访问容器里的组件:
 
    1、Component add(Component comp):向容器中添加其他组件(该组件既可以是普通组件,也可以是容器),并返回被添加的组件。
    2、Component getComponentAt(int x, int y):返回指定点的组件。
    3、int getComponentCount():返回该容器内组件的数量。
    4、Component[] getComponents():返回该容器内的所有组件。
 
    AWT主要提供了两种主要的容器类型:
 
    1、Window:可独立存在的顶级窗口
    2、Panel:可作为容器容纳其他组件,但不能独立存在,必须被添加到其他容器中(如Window, Panel或者Applet等)。
 
Frame、Panel、ScrolPane、Dialog是AWT编程中常用的组件,其中Frame代表常见的窗口,它是Window类的子类,具有如下几个特征;
 
    1、Frame对象有标题,允许通过拖拉来改变窗口的位置、大小。
    2、初始化时为不可见,可用setVisible(true)使其显示出来。
    3、默认使用BorderLayout作为其布局管理器。(摘自[疯狂java讲义])