標籤:
1.為了支援圖形化使用者介面程式設計,java1.0的標準類庫中包含一個抽象視窗工具箱(Abstract Window Toolkit,AWT).
這個工具箱極不成熟,其編程模型也不是物件導向的,有很大的局限性.為此,java1.2最終決定放棄AWT中的GUI,而是添加了一個Swing庫.
Swing組件不僅可以完全替代AWT組件,而且提供了更多的複雜組件.
必須注意GUI程式設計是,不能混用AWT組件和Swing組件(例如不能將javax.swing.JList添加到java.awt.Frame中).所用Swing組件的類名以字母J開頭,以區別AWT組件.
注意:Swing是基於AWT架構之上的,它沒有完全替代AWT.
建立架構:
1 import java.awt.Container; 2 3 import javax.swing.JButton; 4 import javax.swing.JFrame; 5 6 public class FrameDmo { 7 public static void main(String[] args) { 8 JFrame frame = new JFrame("測試JFrame"); 9 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//架構關閉時結束運行10 frame.setSize(500, 300);//設定架構大小11 frame.setVisible(true);//顯示架構12 }13 }
setDefaultCloseOperation()告訴程式關閉當前架構時應該做什麼.JFrame.Exit_ON_CLOSE就是告訴程式關閉程式是結束運行.否則關閉架構後,程式沒有結束運行.
建立架構後,就可以添加組件了
1 import java.awt.Container; 2 3 import javax.swing.JButton; 4 import javax.swing.JFrame; 5 6 public class FrameDmo { 7 public static void main(String[] args) { 8 JFrame frame = new JFrame("測試JFrame"); 9 JButton button=new JButton("按鈕");10 //取得架構的內容窗格11 Container container=frame.getContentPane();12 //將架構添加到架構的內容窗格中13 container.add(button);14 //架構關閉時結束運行15 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);16 //設定架構大小17 frame.setSize(500, 300);18 //顯示架構19 frame.setVisible(true);20 }21 }
java SE5之前,如果要將某個組件添加到架構中,必須首先調用類JFrame中的getContentPane取得架構的內容窗格,
然後通過該內容窗格調用方法add將組件添加到內容窗格中.例如上面的例子.
內容窗格委託.
1 import javax.swing.JButton; 2 import javax.swing.JFrame; 3 4 public class FrameWithButton1 extends JFrame { 5 public FrameWithButton1(){ 6 JButton button=new JButton("按鈕"); 7 add(button);//javaSE5之後採用 8 } 9 public static void main(String[] args) {10 FrameWithButton1 frame=new FrameWithButton1();11 frame.setTitle("將一個按鈕添加到架構中");12 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);13 frame.setSize(500,300);14 frame.setVisible(true);15 }16 }
需要將組件添加到其內容窗格的容器有JFrame,JDialog,JApplet,JInternalFrame,jWindow.
java GUI之基本圖形