GUI——AWT框架和容器,創建簡單窗體


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 }

輸出結果如圖:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM