<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

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

    主站蜘蛛池模板: 亚洲视频一区二区三区四区| 亚洲色自偷自拍另类小说| 中文字幕亚洲免费无线观看日本| 国色精品va在线观看免费视频| 久久一区二区免费播放| 麻豆成人久久精品二区三区免费| A在线观看免费网站大全| 国产精品公开免费视频| 国产亚洲精久久久久久无码77777| 亚洲色偷偷av男人的天堂| 最新亚洲卡一卡二卡三新区| 日本免费精品一区二区三区 | 91亚洲视频在线观看| 亚洲中文字幕乱码AV波多JI| 一级做a爰性色毛片免费| 全免费毛片在线播放| 国产成人精品日本亚洲专区 | 亚洲偷自拍拍综合网| gogo免费在线观看| 免费一本色道久久一区| 国产AV无码专区亚洲AV手机麻豆| 美女网站在线观看视频免费的| 久久精品国产亚洲5555| 亚洲欧美熟妇综合久久久久| 久久免费区一区二区三波多野| 午夜无遮挡羞羞漫画免费| 日韩在线视频免费看| 色婷婷亚洲十月十月色天| GOGOGO高清免费看韩国| 亚洲国产无套无码av电影| 日韩色视频一区二区三区亚洲| 91福利免费视频| 亚洲国产综合精品中文第一| 国产一区在线观看免费| 亚洲午夜国产精品无卡| 日本不卡视频免费| 99re8这里有精品热视频免费| 亚洲国产一级在线观看| 美国毛片亚洲社区在线观看 | 美女视频黄a视频全免费网站色窝 美女被cao网站免费看在线看 | 日本亚洲色大成网站www久久 |