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)