GUI概述:GUI(Graphical User Interface)—圖形化用戶界面。用戶和程序之間可以通過GUI能方便友好地進行交互,在Java語言中,JFC(Java Foundation Classed)是開發GUI的API集,它主要包含以下幾個部分:
a) AWT(抽象窗口工具包):Java開發用戶界面最初的工具包,是建立JFC的主要基礎;
b) Swing組件:建立在AWT之上,新的,功能更強大的圖形組件包;
c) JAVA 2D:實現高質量的二維圖形;
AWT框架:
① 在java.awt包中包含了一個完整的類集以支持GUI程序的設計,其中的類及相互關系可以用下圖來描述:
② Component類是最核心的類,它是構成Java圖形用戶界面的基礎,大部分組件都是由該類派生出來的;
③ Component類主要由基本組件和容器(Container)組件組成;
④ 容器(Container)組件主要分為:Window容器和Panel容器;
Frame容器:
① Window是能獨立存在的容器,它有一個子類Frame,它是一個帶有標題和縮放角的窗口;
② Frame有一個構造方法,Frame(String title);
③ 可以通過add()方法,在Frame容器中加入其它組件;
④ Frame容器有默認的布局管理器;
⑤ Frame被創建後,是不可見的;
Panel容器:
① Panel只能存在於其它的容器(Window或其子類)中才能顯示出來;
② 通過Panel的默認構造方法Panel()可以創建一個Panel;
③ 容器不但能容納組件,還能容納其它容器,通過容器的嵌套可以制作出復雜的布局;
創建一個窗體類
1 class MyFrame1 extends Frame{ 2 public MyFrame1(String title){ 3 super(title); 4 } 5 6 public void init(){ 7 this.setSize(300, 300);//設置窗體的寬高 8 this.setBackground(Color.GREEN);//給窗體設置背景色 9 this.setVisible(true);//設置窗體可見 10 } 11 }
主方法調用
1 MyFrame1 myFrame1=new MyFrame1("自己的窗體"); 2 myFrame1.init();
輸出結果如圖:
創建一個帶Panel和Button的窗體:
1 class MyFrame2 extends Frame{ 2 public MyFrame2(String title){ 3 super(title); 4 } 5 6 public void init(){ 7 this.setSize(300, 300);//設置窗體的寬高 8 this.setBackground(Color.GREEN);//給窗體設置背景色 9 this.setLayout(null);//去掉窗體的默認的布局管理器 10 11 Panel panel=new Panel(); 12 panel.setLayout(null);//去掉Panel容器默認的布局管理器 13 panel.setBackground(Color.BLUE); 14 panel.setBounds(0, 0, 200, 200);//距離父容器(Frame)上頂點,左頂點0,寬高200 15 16 Button btn1=new Button("click me");//創建一個按鈕 17 btn1.setBounds(0, 0, 100, 100); 18 btn1.setBackground(Color.RED); 19 20 panel.add(btn1);//添加按鈕到面板中 21 22 this.add(panel);//把panel加到窗體中 23 24 this.setVisible(true);//讓窗體可見 25 } 26 }
輸出結果如圖: