視窗是GUI程式設計的基礎,小型應用程式或圖形介面的應用程式的視覺元件都放在視窗中,在GUI中,視窗是使用者螢幕的一部分,起著在螢幕中一個小螢幕的作用。有以下三種視窗:
Applet視窗:Applet類別管理這個窗口,當應用程式啟動時,由系統建立和處理;
框架視窗(JFrame):這是通常意義上的窗口,它支援視窗週邊的框架、標題欄,以及最小化、最大化和關閉按鈕;
一種無邊框視窗(JWindow):沒有標題欄,沒有框架,只是一個空的矩形。
用Swing中的JFrame類別或它的子類別所建立的物件就是JFrame視窗。
JFrame類別的主要建構方法:
JFrame():建立無標題的視窗物件;
JFrame(String s):建立一個標題名稱是字串s的視窗物件。
JFrame類別的其他常用方法:
setBounds(int x,int y,int width,int height):參數x,y指定視窗出現在螢幕的位置;參數width,height指定視窗的寬度和高度。單位是像素。
setSize(int width,int height):設定視窗的大小,參數width和height指定視窗的寬度和高度,單位是像素。
setBackground(Color c):以參數 c設定視窗的背景顏色。
setVisible(boolean b):參數b設定視窗是可見或不可見。 JFrame預設是不可見的。
pack():以緊湊方式顯示視窗。如果不使用該方法,視窗初始出現時可能看不到視窗中的元件,當使用者調整視窗的大小時,可能才能看到這些元件。
setTitle(String name):以參數name設定視窗的名字。
getTitle():取得視窗的名字。
setResiable(boolean m):設定目前視窗是否可調整大小(預設可調整大小)。
Swing裡的容器都可以加入元件,除了JPanel及其子類別(JApplet)之外,其他的Swing容器不允許把元件直接加入。其他容器新增元件有兩種方法:
一種是用getContentPane()方法取得內容面板,再將元件加入。例如,範例5.1程式中的程式碼:
mw.getContentPane().add(button);
這個程式碼的意義是取得容器的內容面板,並將按鈕button加入到這個內容面板中。
另一種是建立一個JPanel物件的中間容器,把元件加入這個容器中,再用setContentPane()把這個容器置為內容面板。例如,代碼:
JPanel contentPane = new JPanel(); … mw.setContentPane(contentPane);
以上程式碼把contentPane置成內容面板。
【例】一個用JFrame類別建立視窗的Java應用程式。視窗只有一個按鈕。
import javax.swing.*; public class Example5_1{ public static void main(String args[]){ JFrame mw = new JFrame(“我的第一个窗口”); mw.setSize(250,200); JButton button = new JButton(“我是一个按钮”); mw.getContentPane().add(button); mw.setVisible(true); } }
用Swing 編寫GUI程序時,通常不直接用JFrame創建窗口對象,而用JFrame派生的子類創建窗口對象,在子類中可以加入窗口的特定要求和特別的內容等。
【例】定義JFrame派生的子類別MyWindowDemo建立JFrame視窗。類別MyWindowDemo的建構方法有五個參數:視窗的標題名,加放視窗的元件,視窗的背景顏色以及視窗的高度和寬度。在主方法中,利用類別MyWindowDemo建立兩個類似的視窗。
import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Example5_2{ public static MyWindowDemo mw1; public static MyWindowDemo mw2; public static void main(String args[]){ JButton static butt1 = new JButton(“我是一个按钮”); String name1 = “我的第一个窗口”; String name2 = “我的第二个窗口”; mw1 = new MyWindowDemo(name1,butt1,Color.blue,350,450); mw1.setVisible(true); JButton butt2 = new JButton(“我是另一个按钮”); mw2 = new MyWindowDemo(name2,butt2,Color.magenta,300,400); mw2.setVisible(true); } } class MyWindowDemo extends JFrame{ public MyWindowDemo(String name,JButton button,Color c,int w,int h){ super(); setTitle(name); setSize(w,h); Container con = getContentPane(); con.add(button); con.setBackground(c); } }
顯示顏色由java.awt套件的Color類別管理,在Color類中預定了一些常用的顏色,參見表11-3。 JFrame類別的部分常用方法請參考下表。
Color 類別中定義的常用顏色
JFrame 類別的部分常用方法
更多詳解如何使用Java編寫圖形化的中文視窗相關文章請關注PHPPHPPH網!