您的位置:首页 > 编程语言 > Java开发

[疯狂Java笔记]AWT容器简介

2016-02-29 21:27 429 查看
1. 容器类型的主要继承结构:

1) Container容器类底下主要有三种容器子类,分别是Window、Panel和ScrollPane;

2) Window就是最常见的顶级窗口,即一般应用程序最下层的那个框架窗口,只不过这里的Window所代表的顶级窗口非常简单,没有标题、空白且不可拖放和伸缩,而Window的子类Frame则具有标题并允许拖放改变位置且可以调整窗口大小,因此通常Frame使用的较多而Window很少用到;

3) Window类的另一个常用子类就是Dialog对话框类,Dialog可以创建模态和非模态对话框用于和用户进行交互;

4) Panel类是Container类的第二常用子类,表示面板类,该类的特性是不能独立存在,也不能作为顶层窗口,必须被包含在其它容器中(只要是容器都行,连其子类Applet也行),其实际表现就是一个矩形区域,其作用仅仅就是为其它组件提供空间,最终目的就是对画面中的组件进行有效的组织;

5) Panel类最著名的子类就是Applet类,它将网页最为其容器显示Java图形画面;

6) Container类的第三大子类就是ScrollPane,即滚动窗格类,其实现了水平和垂直的滚动条,当其中的组件超出滚动窗格的界限则可以通过滚条显示全部Scroll,它也不能独立存在,必须被包含在其它容器中,同样也不能作为顶层窗口;

2. 创建AWT应用程序的大致过程:

1) 该过程其实就是一个创建容器并包含组件的过程;

2) 必须要有一个顶层的框架窗口(可以是Window、Frame、Dialog等),因此先建立一个顶层窗口;

3) 有了顶层窗口这个容器了以后就可以往里面add各种组件,当然也可以进行容器嵌套;

4) 待一系列组件、容器都添加完毕后进一步完善事件监听、响应等机制;

5) 最后由于所有组件默认都是隐藏的,因此只要将最顶层的那个容器setVisible(true)就可以了,注意!只需要将最顶层的框架窗口设为可见即可,不必将里面的所有组件(容器)都设为可见;

3. Frame的创建:

1) Frame有标题、可拖放、可伸缩,因此其构造器必定包含一个标题字符串;

2) 构造器:Frame(String title); // 设定框架窗口的标题

3) 框架框架顾名思义就是作为顶层窗口的框架,即一般都使用Frame作为顶层窗口,偶尔也会使用Dialog对话框作为顶层窗口(像计算器这样的应用程序就可以仅仅使用对话框作为顶层窗口);

4) 示例:

public class AwtTest {

public static void main(String[] args) {
// TODO Auto-generated method stub

Frame f = new Frame("Frame Test");
f.setBounds(30, 30, 250, 300);
f.setVisible(true);
}

}
!这里仅仅显示了一个框架窗口,但并没有响应点击右上角关闭按钮的事件,因此无法关闭该程序,只能通过任务管理器强行关闭;

4. 使用Panel:

1) Panel仅仅就是一个用来盛装其它组件的矩形区域,并且必须依附在其它容器之内;

2) 示例:

public class AwtTest {

public static void main(String[] args) {
// TODO Auto-generated method stub

Frame f = new Frame("Panel Test");

Panel p = new Panel();
p.add(new TextField(20));
p.add(new Button("push"));

f.add(p);

f.setBounds(30, 30, 250, 300); // 这两个放最后
f.setVisible(true);
}

}
!这里在Panel里放了一个文本编辑框和一个按钮,而Panel则放在Frame中;

!!一般将顶层窗口的位置大小设定和可见性设置放在最后;

5. ScrollPane的应用:

1) 其和Panel属于同一系列,只不过比Panel多一个可以滚动的功能,必须依附于其他容器的可滚动矩形区域;

2) 其构造器必然是和滚动设置有关:ScrollPane(int scrollbarDisplayPolicy); // 设置滚动条的显示方法

3) 显示方法是由ScrollPane类定义的三个静态常量,分别是SCROLLBARS_ALWAYS(总是显示滚条)、SCROLLBARS_NEVER(从不显示)、SCROLLBARS_AS_NEEDED(根据具体情况自动决定显不显示);

!!如果为ALWAYS则水平和垂直滚条同时显示,而AS_NEEDED会根据需要显示一个或两个;

4) 默认的无参构造函数ScrollPane();默认使用SCROLLBARS_AS_NEEDED;

5) 示例:

public class AwtTest {

public static void main(String[] args) {
// TODO Auto-generated method stub

Frame f = new Frame("ScrollPane Test");

ScrollPane sp = new ScrollPane(ScrollPane.SCROLLBARS_ALWAYS);
sp.add(new TextField(500));

f.add(sp);

f.setBounds(30, 30, 20, 100);
f.setVisible(true);
}

}
!可以看到文本框长度远大于框架窗口的宽度,因此水平滚条起作用了,而垂直滚条起不到作用,因此垂直滚条被灰化了;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: