<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    聽雨軒

    不論你在什么時候開始,重要的是開始之后就不要停止。 不論你在什么時候結束,重要的是結束之后就不要悔恨。

    統計

    留言簿(3)

    閱讀排行榜

    評論排行榜

    Java圖形用戶界面---AWT的介紹

    圖形用戶界面 (GUI) 可以通過鍵盤或鼠標來響應用戶的操作, Java 提供了 AWT Swing 兩個包進行圖形用戶界面編程。 AWT 是一組 Java 類,此組 Java 類允許創建圖形用戶界面 (GUI) , AWT 提供用于創建生動而高效的 GUI 的各種組件。 AWT Swing 的基礎,但是 AWT 仔圖形組件的繪制方面并不是完全的“平臺獨立”; Swing 是一個帶有豐富組件的 GUI 工具包,它組成了 JFC 的用戶界面功能的核心部分。 AWT 的基本思想使:以面向對象的方法實現了一個跨平臺的 GUI 工具集,提供了各種用于 GUI 設計的標準組件。大致上可以將這些類歸納為:圖形界面組件、事件處理對象、圖形和圖像工具和布局管理器。

    容器類( Container Component 類的子類,容器組件是一種特殊的組件,它的功能是包含其他基本的 GUI 組件。 即容器是可以存放組件的區域,可在容器上進行繪制和著色 。 java.awt 包中的 Container 類可直接或間接派生出兩個常用容器:框架( Frame 類)和面板( Panel 類)。框架是一個帶有邊框的獨立的窗口。面板是包含在窗口中的一個不帶邊框的區域。 Panel 沒有具體的圖形表示,但它卻是實現 GUI 結構化的一個至關重要的組件,通常用它來實現 GUI 基本組件的組合。

    框架 Frame 創建的窗口式獨立于 Applet 和瀏覽器的可獨立運行的主窗口,通常用于開發桌面應用程序。它定義了一個包含標題條、系統菜單欄最大化 / 最小化按鈕及可選菜單條的完整窗口。當一個Frame窗口被創建以后,需要調用setSize()方法來設置窗口的大小,并調用setVisible()來顯示窗口。Frame默認的布局管理器是BorderLayout,默認的添加組件位置是BorderLayout.CENTER。

    面板 Panel 面板不是一個單獨的窗口,它只是包含在窗口中的一個區域。面板是可以將許多組件組合起來的一種容器。最簡單創建面板的方式就是通過面板的構造函數 Panel() 來進行。必須將面板添加到窗體中。 Applet 的缺省布局是 FlowLayout ; 在沒有設置新的布局前,在容器中添加組件都按照該容器的缺省布局排列。 Applet 繼承自 Panel ,所以可以推斷 Panel 的默認布局管理器是 FlowLayout ,所以向其中添加組件的順序是自左向右,自上向下。

    對話框 Dialog 也是一種容器,其默認的布局管理器是 BorderLayout 。有模式( model )和非模式( modeless )兩種,模式對話框只讓應用程序響應對話框內的事件而其他窗體中的事件則不能響應;而非模式對話框則可以響應其他窗體中的事件。

    布局管理器: AWT 中每個組件在容器中都應該有一個具體的位置和大小,我們想在容器中排列若干個組件時,會很難控制它們的大小和位置。為了簡化編程者對容器上的組件的布局控制,一個容器內的所有組件的顯示位置可以由一個 布局管理器 來管理,我們可以為容器指定不同的布局管理器,在不同的布局管理器下,同一組件將會有不同的顯示效果,并且我們不能完全按自己的意愿設置組件的大小和位置了。

    ??? 為了我們生成的圖形用戶界面具有良好的平臺無關性,
    java 語言中提供了布局管理器這個工具來管理組件在容器中的布局,當容器需要對某個組件進行定位或判斷其大小尺寸時就會調用其布局管理器。所有布局都實現 LayoutManager 接口。

    Java 中的布局類型包括以下幾種: FlowLayout (流式布局); BorderLayout (邊界布局) ; GridLayout (網格布局); GridBagLayout (網格包布局); CardLayout (卡片布局)。

    布局類型的選用: 每個布局管理器都有自己特定的用途。要按行和列顯示幾個同樣大小的組件, GridLayout 會比較合適;要在盡可能大的空間里顯示一個組件,就要選擇 BorderLayout GridBagLayout

    如何設置布局: 每個容器( Container 對象)都有一個與它相關的缺省的布局管理器。 Applet 的缺省布局是 FlowLayout ; 在沒有設置新的布局前,在容器中添加組件都按照該容器的缺省布局排列。 可以通過 setLayout( ) 方法為容器設置新的布局。

    注意: 定義窗體的大小,如果是在構造函數中使用: super.setBounds(0,0,400,300); 來實現,則在主函數中,只需要使用 f.show() ,或者 f.setVisible(true); 即可,但是如果是使用 getPreferredSize() 方法來設置窗體的大小,則還需要使用 f.pack(); 語句。關閉窗體的方法有多種:

    1 )添加事件監聽器:

    f.addWindowListener(new WindowAdapter()??? // 對窗口事件進行監聽 ( 關閉窗體事件 )

    {???? public void windowClosing(WindowEvent e)

    ?????? {???? System.exit(0);? // 正常退出 Java 虛擬機 ? ??? }

    });

    2 )構造函數中添加 enableEvents(AWTEvent.WINDOW_EVENT_MASK); 語句

    重寫如下的方法:

    protected void processWindowEvent(WindowEvent e)?? // 對應前面的語句實現窗體的關閉功能

    {???? super.processWindowEvent(e);

    ?????? if(e.getID()==WindowEvent.WINDOW_CLOSING)

    ?????? {???? System.exit(0);? // 正常退出 Java 虛擬機 ? ??? }

    }

    3)JFrame 中的關閉窗體監聽事件

    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 關閉窗口操作(正常退出 JVM JFramenoren setDefaultCloseOperation() 方法只是將窗體隱藏,所以要將其改為 JFrame.EXIT_ON_CLOSE 才可以正常退出虛擬機,關閉窗體。

    ?

    posted on 2006-11-13 18:34 Winnie 閱讀(1805) 評論(1)  編輯  收藏 所屬分類: java基礎知識

    評論

    # re: Java圖形用戶界面---AWT的介紹[未登錄] 2009-08-09 12:29 Louis

    這么好的文章,看后還是要說聲謝謝啊  回復  更多評論   

    主站蜘蛛池模板: 国产成人涩涩涩视频在线观看免费 | 99久久成人国产精品免费| 成年18网站免费视频网站| 亚洲精品国产成人| 最近免费中文字幕mv电影| 精品亚洲麻豆1区2区3区| 最近中文字幕国语免费完整| 久久精品国产精品亚洲蜜月| 国产精品免费福利久久| 亚洲第一区香蕉_国产a| 91人人区免费区人人| 亚洲综合网美国十次| 国产免费的野战视频| 亚洲深深色噜噜狠狠网站| 四虎成人免费网址在线| 香蕉97碰碰视频免费| 国产亚洲AV手机在线观看| 久久精品国产免费一区| 亚洲综合亚洲国产尤物| 我要看WWW免费看插插视频| 亚洲av无码兔费综合| 亚洲国产精品狼友中文久久久| rh男男车车的车车免费网站| 亚洲女同成av人片在线观看| 性xxxxx大片免费视频| 亚洲一级免费毛片| 免费国产a国产片高清网站| 黄 色一级 成 人网站免费| 亚洲国产高清人在线| 18禁无遮挡无码网站免费| 精品成人一区二区三区免费视频 | 国产精品亚洲A∨天堂不卡| 三年片在线观看免费大全电影 | 亚洲码在线中文在线观看| 日韩欧美一区二区三区免费观看| 亚洲Aⅴ在线无码播放毛片一线天| 精品国产亚洲男女在线线电影| 午夜精品射精入后重之免费观看 | 亚洲av无码不卡久久| 亚洲国产成人精品女人久久久| 人人揉揉香蕉大免费不卡|