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

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

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

    聽(tīng)雨軒

    不論你在什么時(shí)候開(kāi)始,重要的是開(kāi)始之后就不要停止。 不論你在什么時(shí)候結(jié)束,重要的是結(jié)束之后就不要悔恨。

    統(tǒng)計(jì)

    留言簿(3)

    閱讀排行榜

    評(píng)論排行榜

    Java圖形用戶(hù)界面---AWT的介紹

    圖形用戶(hù)界面 (GUI) 可以通過(guò)鍵盤(pán)或鼠標(biāo)來(lái)響應(yīng)用戶(hù)的操作, Java 提供了 AWT Swing 兩個(gè)包進(jìn)行圖形用戶(hù)界面編程。 AWT 是一組 Java 類(lèi),此組 Java 類(lèi)允許創(chuàng)建圖形用戶(hù)界面 (GUI) AWT 提供用于創(chuàng)建生動(dòng)而高效的 GUI 的各種組件。 AWT Swing 的基礎(chǔ),但是 AWT 仔圖形組件的繪制方面并不是完全的“平臺(tái)獨(dú)立”; Swing 是一個(gè)帶有豐富組件的 GUI 工具包,它組成了 JFC 的用戶(hù)界面功能的核心部分。 AWT 的基本思想使:以面向?qū)ο蟮姆椒▽?shí)現(xiàn)了一個(gè)跨平臺(tái)的 GUI 工具集,提供了各種用于 GUI 設(shè)計(jì)的標(biāo)準(zhǔn)組件。大致上可以將這些類(lèi)歸納為:圖形界面組件、事件處理對(duì)象、圖形和圖像工具和布局管理器。

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

    框架 Frame 創(chuàng)建的窗口式獨(dú)立于 Applet 和瀏覽器的可獨(dú)立運(yùn)行的主窗口,通常用于開(kāi)發(fā)桌面應(yīng)用程序。它定義了一個(gè)包含標(biāo)題條、系統(tǒng)菜單欄最大化 / 最小化按鈕及可選菜單條的完整窗口。當(dāng)一個(gè)Frame窗口被創(chuàng)建以后,需要調(diào)用setSize()方法來(lái)設(shè)置窗口的大小,并調(diào)用setVisible()來(lái)顯示窗口。Frame默認(rèn)的布局管理器是BorderLayout,默認(rèn)的添加組件位置是BorderLayout.CENTER

    面板 Panel 面板不是一個(gè)單獨(dú)的窗口,它只是包含在窗口中的一個(gè)區(qū)域。面板是可以將許多組件組合起來(lái)的一種容器。最簡(jiǎn)單創(chuàng)建面板的方式就是通過(guò)面板的構(gòu)造函數(shù) Panel() 來(lái)進(jìn)行。必須將面板添加到窗體中。 Applet 的缺省布局是 FlowLayout 在沒(méi)有設(shè)置新的布局前,在容器中添加組件都按照該容器的缺省布局排列。 Applet 繼承自 Panel ,所以可以推斷 Panel 的默認(rèn)布局管理器是 FlowLayout ,所以向其中添加組件的順序是自左向右,自上向下。

    對(duì)話(huà)框 Dialog 也是一種容器,其默認(rèn)的布局管理器是 BorderLayout 。有模式( model )和非模式( modeless )兩種,模式對(duì)話(huà)框只讓?xiě)?yīng)用程序響應(yīng)對(duì)話(huà)框內(nèi)的事件而其他窗體中的事件則不能響應(yīng);而非模式對(duì)話(huà)框則可以響應(yīng)其他窗體中的事件。

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

    ??? 為了我們生成的圖形用戶(hù)界面具有良好的平臺(tái)無(wú)關(guān)性,
    java 語(yǔ)言中提供了布局管理器這個(gè)工具來(lái)管理組件在容器中的布局,當(dāng)容器需要對(duì)某個(gè)組件進(jìn)行定位或判斷其大小尺寸時(shí)就會(huì)調(diào)用其布局管理器。所有布局都實(shí)現(xiàn) LayoutManager 接口。

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

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

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

    注意: 定義窗體的大小,如果是在構(gòu)造函數(shù)中使用: super.setBounds(0,0,400,300); 來(lái)實(shí)現(xiàn),則在主函數(shù)中,只需要使用 f.show() ,或者 f.setVisible(true); 即可,但是如果是使用 getPreferredSize() 方法來(lái)設(shè)置窗體的大小,則還需要使用 f.pack(); 語(yǔ)句。關(guān)閉窗體的方法有多種:

    1 )添加事件監(jiān)聽(tīng)器:

    f.addWindowListener(new WindowAdapter()??? // 對(duì)窗口事件進(jìn)行監(jiān)聽(tīng) ( 關(guān)閉窗體事件 )

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

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

    });

    2 )構(gòu)造函數(shù)中添加 enableEvents(AWTEvent.WINDOW_EVENT_MASK); 語(yǔ)句

    重寫(xiě)如下的方法:

    protected void processWindowEvent(WindowEvent e)?? // 對(duì)應(yīng)前面的語(yǔ)句實(shí)現(xiàn)窗體的關(guān)閉功能

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

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

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

    }

    3)JFrame 中的關(guān)閉窗體監(jiān)聽(tīng)事件

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

    ?

    posted on 2006-11-13 18:34 Winnie 閱讀(1805) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): java基礎(chǔ)知識(shí)

    評(píng)論

    # re: Java圖形用戶(hù)界面---AWT的介紹[未登錄](méi) 2009-08-09 12:29 Louis

    這么好的文章,看后還是要說(shuō)聲謝謝啊  回復(fù)  更多評(píng)論   

    主站蜘蛛池模板: 亚洲Aⅴ无码一区二区二三区软件| 久久国产乱子伦精品免费不卡| 亚洲精品免费网站| 亚洲国产中文在线视频| 久久精品无码专区免费东京热 | 亚洲偷偷自拍高清| 女人被男人桶得好爽免费视频 | 日韩免费无码视频一区二区三区| 亚洲天堂电影在线观看| 毛片免费观看的视频在线| 国产综合成人亚洲区| 免费很黄很色裸乳在线观看| 免费一区二区无码视频在线播放| 久久国产成人精品国产成人亚洲 | 国内精品久久久久久久亚洲| 久久永久免费人妻精品| eeuss在线兵区免费观看| 亚洲阿v天堂在线| 中文字幕成人免费高清在线视频| 亚洲精品成人网站在线观看| 成人免费福利视频| 视频一区在线免费观看| 亚洲午夜未满十八勿入| 日韩免费视频播放| 国产午夜不卡AV免费| 狠狠色伊人亚洲综合网站色| 国产亚洲精午夜久久久久久| 亚洲AV无码不卡在线观看下载| 免费A级毛片无码视频| 免费国产在线视频| 豆国产96在线|亚洲| 亚洲国产美国国产综合一区二区| 亚洲人成网站观看在线播放| 老汉精品免费AV在线播放| 一区二区三区福利视频免费观看| 日产久久强奸免费的看| 九九免费观看全部免费视频| 亚洲精品无码成人| 久久精品国产亚洲av麻豆色欲| 亚洲第一网站男人都懂| 亚洲日本一区二区一本一道|