9.2窗口容器
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爲例,說明窗口構件的用法。
9.2.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
9.2.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)