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

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

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

    隨筆 - 303  文章 - 883  trackbacks - 0
    <2007年3月>
    25262728123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    歡迎光臨! 
    閑聊 QQ:1074961813

    隨筆分類(357)

    我管理的群

    公共blog

    • n維空間
    • Email : java3d@126.com 群 : 12999758

    參與管理的論壇

    好友的blog

    我的其他blog

    朋友的網站

    搜索

    •  

    最新評論

    本人因為做一個SWING計算器的緣故開始接觸SWING,在這里本人不會去研究Swing是否之類無聊話題,

    希望大家能和我一起以一種熱情,自信,不怕失敗的態度學習SWING的使用,謝謝!

    內容及代碼來自:http://www.mycnknow.com? 本人只是負責錯誤代碼改動和代碼解說

    簡介

    1-1:Swing常用的package
    ??????????? PACHAGE???????????????????????? |???????????????????? 內????????? 容
    ????????? -----------------|-------------------------------
    ?????????? javax.swing????????????????????????? |???????? 最常用的pachage,包含了各種swing組件的類
    ?????????? javax.swing.border?????????????? |???????? 包含與swing組件外框有關的類
    ?????????? javax..swing.colorchooser????|???????? 針對swing調色盤組件(JColorChooser)所設計的類
    ?????????? javax.swing.event???????????????? |???????? 處理由swing組件產生的事件,有別于AWT事件
    ?????????? javax.swing.filechooser?????????|???????? 包含針對swing文件選擇對話框(JFileChooser)所設計的類
    ????????? ----------------------------------------------
    ?????????? javax.swing.plaf??????????????????? |???????? 處理swing組件外觀的相關類
    ?????????? javax.swing.plaf.basic?????????? |????????
    ??????????? javax.swing.plaf.metal???????????|????????
    ?????????? ?javax.swing.plaf.multi??????????? |?
    ?????????? ----------------------------------------------??????
    ?????????? javax.swing.table????????????????? |???????? 針對swing表格組件(JTable)所設計的類
    ?????????? ----------------------------------------------
    ?????????? javax.swing.text??????????????????? |???????? 包含與swing文字組件相關的類
    ?????????? javax.swing.text.html???????????? |
    ??????????? javax.swing.text.html.parser?? |
    ??????????? javax.swing.text.rtf????????????????|
    ?????????? ----------------------------------------------
    ?????????? javax.swing.tree???????????????????|???????? 針對swing樹關元件(JTree)所設計的類
    ?????????? javax.swing.undo???????????????? |???????? 提供swing文字組件Redo或Undo的功能
    1-2:swing的版面結構
    ?? Swing中幾乎所有組件都是從JComponent衍生而來,也就是說這些組件都是lightweight Component,均由純java code所編寫面成
    、Swing中以下幾個組件不是由JComponent繼承面來:
    ??? JFrame(JRoot Pane)
    ??? JDialog(JRoot Pane)
    ??? JWindow(JRoot Pane)
    ??? JApplet(JRoot Pane)
    ? 以上四個組件是heavyweight Component,必須使用到native code來畫出這四個窗口組件,因為要在操作系統中顯示窗口畫面,必
    須使用操作系統的窗口資源,而以往的AWT組件大多使用native code所構造出來,因此Swing中的JFrame便繼承原有AWT中的Frame
    類,面不是繼承JComponent類。同樣,JApplet是繼承原有AWT中的JApplet類,也不是繼承JComponent類。
    ??? JFrame、JDialog、JWindow及JApplet這四個組件統稱為最上層組件,因為其余的swing組件都必須依附在此四組件之一上才能
    顯示出來。此四組件均實現(Implement)RootPaneContainer這個界面(Interface),此界面定義了各種容器取得與設置并不是真實的容器,它是由Glass Pane
    與Layered Pane所組成(Layered Pane里擁有Content Pane與Menu Bar,而Menu Bar可選擇使用或不使用),
    我們不能在JRootPane上加入任何的組件,因為它只是一個虛擬的容器,若要在最上層組件上加入組件,必須加在Layered Pane或是
    Layered Pane里的Content Pane上。以JFrame為例,一般我們要在JFrame上加入其他組件(如JButton、JLabel等)必須先取得JFrame
    的Content Pane,然后將要加入的組件放在此Content Pane中,而不是直接就加到JFrame上。因此若要在JFrame中加入一個按鈕,不
    能像以前AWT時一樣寫成frame.add(button)的形式,而必須先取得JFrame的Content Pane,然后將按鈕加入Content Pane中,如:
    ?? frame.getContentPane().add(button)
    否則在編譯的時候將有錯誤信息產生。
    &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    注意:
    1.組件必須加在容器中,而容器本身具有層次性的關系,就如同珠寶盒一般,大盒子里面可以放小盒子,小盒子里面還可以放更小的盒子,而珠寶就可以放
    在某一個盒子中,這里的珠寶就代表組件,盒子就代表容器。因此若您想在JFrame加入任何組件時,必須
    先取得JFrame的容器來放置這些組件,而由于JFrame、JDialog、JWindow與JApplet是顯示Swing組件的源頭,我們可以稱它們為根
    組件,也就是所謂的最上層組件。
    2.RootPaneContainer它是一個interface,共有5個類實現(Implement)它,分別是JFrame、JAppleet、JWindow、JDialog、
    JInternalFrame,其中JInternalFrame是一個lightweight Component,它不是一個最上層組件,也就是說JInternalFrame不能單獨顯示出來,必須依附在最上
    層組件中,我們將在下面討論組件,而JFrame,JApplet,JWindow,JDialog均為最上層組件。
    &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    RootPaneContainer定義了下面幾種方法:
    ??? 方法
    ? Container?????? getContentPane()返回contentPane
    ? Component?????? getGlassPane()返回glassPane
    ? JLayeredPane??? getLayeredPane()返回layeredPane
    ? JRootPane?????? getRootPane返回屬于這個組件的JRootPane
    ? Void??????????? setContentPane(Container contentpane)設置ContentPane
    ? Void??????????? setGlassPane(Component glassPane)設置GlassPane
    ? Void??????????? setLayeredPane(JLayeredPane layeredPane)設置LayeredPane
    JFrame如何取得Content Pane的實際流程,下面是一段很簡單的程序代碼:
    ? public class Simple{
    ??? Simple(){
    ?????? JFrame frame=new JFrame();
    ?????? Container contentPane=frame.getContentPane();
    ?????? JButton button=new JButton();
    ?????? contentPane.add(button);
    ??? }
    ? }
    當我們寫frame.getContentPane()時,會返回此frame的Content Pane,也就是一個容器組件,有了容器之后我們才能將button組件
    擺進去,此時JFrame才算擁有button組件。所以JFrame就好像是一塊空地,要在這空地上信人應該先蓋一棟房子(容器),然后人
    、家具、設備等等(組件)就能搬進此房子中。下面的層次結構說明了最上層組件都含有JRootPane組件,JRootPane本身就含有容
    器組件,可讓最上層組件裝入其他的組件。

    ????? |Frame------JFrame(JRoot Pane)
    ????? |
    Window|Dialog-----JDialog(JRoot Pane)
    ????? |
    ????? |
    ????? |-----------JWindow(JRoot Pane)

    Applet -----------JApplet(JRoot Pane)

    圖示:
    ???????? |Grass Pane
    ???????? |
    Root Pane|
    ???????? |??????????? |Content Pane
    ???????? |Layered Pane|
    ????????????????????? |Menu Bar
    ?



    地震讓大伙知道:居安思危,才是生存之道。
    posted on 2007-03-02 23:19 小尋 閱讀(373) 評論(0)  編輯  收藏 所屬分類: j2se/j2ee/j2me
    主站蜘蛛池模板: 久久er国产精品免费观看8| 国产亚洲?V无码?V男人的天堂| 成年网站免费入口在线观看| 久久久久久久亚洲Av无码| 亚洲国产精品无码久久久久久曰 | 亚洲第一区在线观看| 黄瓜视频高清在线看免费下载| 男女作爱在线播放免费网站| 无码 免费 国产在线观看91| 亚洲人AV在线无码影院观看| 亚洲国产精品综合久久网各| 亚洲AV无码乱码国产麻豆穿越| 久久久久亚洲精品中文字幕| 免费国产a国产片高清| 夭天干天天做天天免费看| 免费h片在线观看网址最新| 无码成A毛片免费| 永久在线观看免费视频| 国产vA免费精品高清在线观看| 国产亚洲精品美女久久久久久下载| 亚洲国产日韩在线人成下载 | 中文字幕天天躁日日躁狠狠躁免费 | 日本免费高清视频| 美女巨胸喷奶水视频www免费| 免费无码专区毛片高潮喷水| 欧美亚洲国产SUV| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 999任你躁在线精品免费不卡| 日本免费一区尤物| 成人奭片免费观看| 日韩精品福利片午夜免费观着| 动漫黄网站免费永久在线观看| 波多野结衣在线免费视频 | 亚洲最大黄色网站| 亚洲人成人77777在线播放| 亚洲国产美女精品久久久久| 亚洲人成网站日本片| 亚洲制服丝袜中文字幕| 亚洲综合精品伊人久久| 久久精品国产亚洲AV| 男人免费视频一区二区在线观看|