窗口是GUI編程的基礎,小應用程序或圖形界面的應用程序的可視組件都放在窗口中,在GUI中,窗口是用戶屏幕的一部分,起著在屏幕中一個小屏幕的作用。有以下三種窗口:
Applet窗口:Applet類管理這個窗口,當應用程序程序啟動時,由系統創建和處理;
框架窗口(JFrame):這是通常意義上的窗口,它支持窗口周邊的框架、標題欄,以及最小化、最大化和關閉按鈕;
一種無邊框窗口(JWindow):沒有標題欄,沒有框架,只是一個空的矩形。
用Swing中的JFrame類或它的子類創建的對象就是JFrame窗口。
JFrame類的主要構造方法:
JFrame類的其他常用方法:
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 類的部分常用方法
新聞熱點
疑難解答