隨筆 - 71  文章 - 15  trackbacks - 0
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          因為口渴,上帝創造了水;
          因為黑暗,上帝創造了火;
          因為我需要朋友,所以上帝讓你來到我身邊
          Click for Shaanxi xi'an, Shaanxi Forecast
          ╱◥█◣
            |田|田|
          ╬╬╬╬╬╬╬╬╬╬╬
          If only I have such a house!
          〖總在爬山 所以艱辛〗
          Email:myesjoy@yahoo.com.cn
          NickName:yesjoy
          MSN:myesjoy@hotmail.com
          QQ:150230516

          〖總在尋夢 所以苦痛〗

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          Hibernate在線

          Java友情

          Java認證

          linux經典

          OA系統

          Spring在線

          Structs在線

          專家專欄

          企業信息化

          大型設備共享系統

          工作流

          工作流產品

          網上購書

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          1 用AWT生成圖形化用戶界面

           
          抽象窗口工具包AWT (Abstract Window Toolkit) 是 API為Java 程序提供的建立圖形用戶界面GUI (Graphics User Interface)工具集,AWT可用于Java的applet和applications中。它支持圖形用戶界面編程的功能包括: 用戶界面組件;事件處理模型;圖形和圖像工具,包括形狀、顏色和字體類;布局管理器,可以進行靈活的窗口布局而與特定窗口的尺寸和屏幕分辨率無關;數據傳送類,可以通過本地平臺的剪貼板來進行剪切和粘貼。

          1.1 java.awt包
           
            java.awt包中提供了GUI設計所使用的類和接口,可從下圖中看到主要類之間的關系。


            java.awt包提供了基本的java程序的GUI設計工具。主要包括下述三個概念:

            組件--Component
            容器--Container
            布局管理器--LayoutManager

          1.2 組件和容器

            Java的圖形用戶界面的最基本組成部分是組件(Component),組件是一個可以以圖形化的方式顯示在屏幕上并能與用戶進行交互的對象,例如一個按鈕,一個標簽等。組件不能獨立地顯示出來,必須將組件放在一定的容器中才可以顯示出來。

            類java.awt.Component是許多組件類的父類,Component類中封裝了組件通用的方法和屬性,如圖形的組件對象、大小、顯示位置、前景色和背景色、邊界、可見性等,因此許多組件類也就繼承了Component類的成員方法和成員變量,相應的成員方法包括:

             getComponentAt(int x, int y)
             getFont()
             getForeground()
             getName()
             getSize()
             paint(Graphics g)
             repaint()
             update()
             setVisible(boolean b)
             setSize(Dimension d)
             setName(String name)等

            
            容器(Container)也是一個類,實際上是Component的子類,因此容器本身也是一個組件,具有組件的所有性質,但是它的主要功能是容納其它組件和容器。

            布局管理器(LayoutManager):每個容器都有一個布局管理器,當容器需要對某個組件進行定位或判斷其大小尺寸時,就會調用其對應的布局管理器。

            為了使我們生成的圖形用戶界面具有良好的平臺無關性,Java語言中,提供了布局管理器這個工具來管理組件在容器中的布局,而不使用直接設置組件位置和大小的方式。

            在程序中安排組件的位置和大小時,應該注意以下兩點:
            1.容器中的布局管理器負責各個組件的大小和位置,因此用戶無法在這種情況下設置組件的這些屬性。如果試圖使用Java 語言提供的setLocation(),setSize(),setBounds() 等方法,則都會被布局管理器覆蓋。

            2.如果用戶確實需要親自設置組件大小或位置,則應取消該容器的布局管理器,方法為:
             setLayout(null);

          1.3 常用容器

            容器java.awt.Container是Component的子類,一個容器可以容納多個組件,并使它們成為一個整體。容器可以簡化圖形化界面的設計,以整體結構來布置界面。所有的容器都可以通過add()方法向容器中添加組件。
          有三種類型的容器:Window、Panel、ScrollPane,常用的有Panel, Frame, Applet。
          1.Frame

            
          以下是容器的例子:
          例1

           1 import java.awt.*;
           2 public class MyFrame extends Frame{
           3  public static void main(String args[ ]){
           4   MyFrame fr = new MyFrame("Hello Out There!");//構造方法
           5   fr.setSize(200,200);//設置Frame的大小,缺省為(0,0)
           6   fr.setBackground(Color.red);//設置Frame的背景,缺省為紅色
           7   fr.setVisible(true);//設置Frame為可見,缺省為不可見
           8  }
           9  public MyFrame (String str){
          10   super(str);//調用父類的構造方法
          11  }
          12 }

          運行結果如下:

          2. Panel

            
          例2
           1 import java.awt.*;
           2 public class FrameWithPanel extends Frame{
           3  public FrameWithPanel(String str){
           4   super(str);
           5  }
           6  public static void main(String args[]){
           7   FrameWithPanel fr = new FrameWithPanel("Frame with Panel");
           8   Panel pan=new Panel();
           9   fr.setSize(200,200);
          10   fr.setBackground(Color.red);//框架fr的背景顏色設置為紅色
          11   fr.setLayout(null);//取消布局管理器
          12   pan.setSize(100,100);
          13   pan.setBackground(Color.yellow);//設置面板pan的背景顏色為黃色
          14   fr.add(pan);//用add方法把面板pan添加到框架fr中
          15   fr.setVisible(true);
          16  }
          17 }
          運行結果如下:
          posted on 2006-01-21 18:10 ★yesjoy★ 閱讀(1203) 評論(0)  編輯  收藏 所屬分類: java.awt包
          主站蜘蛛池模板: 桑植县| 温泉县| 凤城市| 鄯善县| 富顺县| 收藏| 白玉县| 和静县| 全州县| 定西市| 普兰店市| 洛隆县| 北宁市| 游戏| 凉山| 阿拉尔市| 沛县| 洪洞县| 亚东县| 盐津县| 浦县| 蒙山县| 永安市| 瑞安市| 仙居县| 乌鲁木齐县| 宜宾市| 大同市| 永仁县| 聂荣县| 皮山县| 鹤山市| 蚌埠市| 德令哈市| 甘德县| 拉萨市| 江西省| 西城区| 肃宁县| 望城县| 墨竹工卡县|