AWT中提供3个用于在屏幕上显示窗口的构件:Window,Frame和Dialog。我们把它统称为窗口构件。
java.awt.Window是三个窗口构件中最基本的构件;Window构件是Frame和Dialog的父类。它没有边界、标题栏和菜单栏,而且大小不可以调整。
java.awt.Frame是Window的子类,它拥有边界与标题栏设置,而且大小允许调整,可以有菜单栏。
java.awt.Dialog也是Window的子类,它也拥有边界与标题栏设置,大小允许调整,但它不支持菜单栏;
窗口构件触发窗口事件WindowEvent,它的的监听者是WindowListener,里面的接口包括:windowOpened(WindowEvent),windowClosed(WindowEvent)等,同学们可以参阅帮助文件; java.awt.event.WindowAdapter这个类实现了WindowListener接口,但里面的方法都是空的方法,我们可以选定实现WindowListener接口里的某些方法。
下面,我们以Frame、Dialog和FileDialog为例,说明窗口构件的用法。
1 Frame类
java.awt包中的Frame类或子类所创建的一个对象就是一个窗口(默认布局BorderLayout)。
Frame类的主要方法:
Frame():创建无名窗口。
Frame(String s):创建名字是s的窗口。
setBounds(int a,int b,int width,int height):
setSize(int width,int height):
setBackground(Color c):
setVisible(boolean b):
pack():用紧凑方式显示窗口。
setTitle(String name):
getTitle():获取窗口的名字。
setResizable(boolean b):
例:Example15_2.java
2 Dialog(对话框)类
通过扩展Dialog类来创建一个对话框。Dialog类是java.awt中的一个类,也是一个容器。
对话框可以接受用户的输入,实现与用户的交互。对话框与一般窗口的区别在于它依赖于其它窗口:当它所依赖的窗口消失或最小化时,对话框也将消失;窗口还原时,对话框又会自动恢复。
对话框分为无模式和有模式两种,有模式对话框只让程序响应对话框内部的事件,对于对话框以外的事件程序不响应,而无模式对话框可以让程序响应对话框以外的事件。
怎样定义对话框类?
通过Dialog的子类来建立一个对话框,即这个字类的一个对象,就是一个对话框。
Dialog类的主要方法如下:
Dialog(Frame f,String s)
Dialog(Frame f,String s,boolean b)
getTitle()
setTitle(String s)
setModal(boolean)
setSize()
setVisible(boolean b)