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

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);
	}

}
!可以看到文本框长度远大于框架窗口的宽度,因此水平滚条起作用了,而垂直滚条起不到作用,因此垂直滚条被灰化了;


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值