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

          歡迎光臨! 
          閑聊 QQ:1074961813

          隨筆分類(357)

          我管理的群

          公共blog

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

          參與管理的論壇

          好友的blog

          我的其他blog

          朋友的網(wǎng)站

          搜索

          •  

          最新評(píng)論

          本人因?yàn)樽鲆粋€(gè)SWING計(jì)算器的緣故開(kāi)始接觸SWING,在這里本人不會(huì)去研究Swing是否之類無(wú)聊話題,

          希望大家能和我一起以一種熱情,自信,不怕失敗的態(tài)度學(xué)習(xí)SWING的使用,謝謝!

          內(nèi)容及代碼來(lái)自:http://www.mycnknow.com? 本人只是負(fù)責(zé)錯(cuò)誤代碼改動(dòng)和代碼解說(shuō)

          簡(jiǎn)介

          1-1:Swing常用的package
          ??????????? PACHAGE???????????????????????? |???????????????????? 內(nèi)????????? 容
          ????????? -----------------|-------------------------------
          ?????????? javax.swing????????????????????????? |???????? 最常用的pachage,包含了各種swing組件的類
          ?????????? javax.swing.border?????????????? |???????? 包含與swing組件外框有關(guān)的類
          ?????????? javax..swing.colorchooser????|???????? 針對(duì)swing調(diào)色盤(pán)組件(JColorChooser)所設(shè)計(jì)的類
          ?????????? javax.swing.event???????????????? |???????? 處理由swing組件產(chǎn)生的事件,有別于AWT事件
          ?????????? javax.swing.filechooser?????????|???????? 包含針對(duì)swing文件選擇對(duì)話框(JFileChooser)所設(shè)計(jì)的類
          ????????? ----------------------------------------------
          ?????????? javax.swing.plaf??????????????????? |???????? 處理swing組件外觀的相關(guān)類
          ?????????? javax.swing.plaf.basic?????????? |????????
          ??????????? javax.swing.plaf.metal???????????|????????
          ?????????? ?javax.swing.plaf.multi??????????? |?
          ?????????? ----------------------------------------------??????
          ?????????? javax.swing.table????????????????? |???????? 針對(duì)swing表格組件(JTable)所設(shè)計(jì)的類
          ?????????? ----------------------------------------------
          ?????????? javax.swing.text??????????????????? |???????? 包含與swing文字組件相關(guān)的類
          ?????????? javax.swing.text.html???????????? |
          ??????????? javax.swing.text.html.parser?? |
          ??????????? javax.swing.text.rtf????????????????|
          ?????????? ----------------------------------------------
          ?????????? javax.swing.tree???????????????????|???????? 針對(duì)swing樹(shù)關(guān)元件(JTree)所設(shè)計(jì)的類
          ?????????? javax.swing.undo???????????????? |???????? 提供swing文字組件Redo或Undo的功能
          1-2:swing的版面結(jié)構(gòu)
          ?? Swing中幾乎所有組件都是從JComponent衍生而來(lái),也就是說(shuō)這些組件都是lightweight Component,均由純java code所編寫(xiě)面成
          、Swing中以下幾個(gè)組件不是由JComponent繼承面來(lái):
          ??? JFrame(JRoot Pane)
          ??? JDialog(JRoot Pane)
          ??? JWindow(JRoot Pane)
          ??? JApplet(JRoot Pane)
          ? 以上四個(gè)組件是heavyweight Component,必須使用到native code來(lái)畫(huà)出這四個(gè)窗口組件,因?yàn)橐诓僮飨到y(tǒng)中顯示窗口畫(huà)面,必
          須使用操作系統(tǒng)的窗口資源,而以往的AWT組件大多使用native code所構(gòu)造出來(lái),因此Swing中的JFrame便繼承原有AWT中的Frame
          類,面不是繼承JComponent類。同樣,JApplet是繼承原有AWT中的JApplet類,也不是繼承JComponent類。
          ??? JFrame、JDialog、JWindow及JApplet這四個(gè)組件統(tǒng)稱為最上層組件,因?yàn)槠溆嗟膕wing組件都必須依附在此四組件之一上才能
          顯示出來(lái)。此四組件均實(shí)現(xiàn)(Implement)RootPaneContainer這個(gè)界面(Interface),此界面定義了各種容器取得與設(shè)置并不是真實(shí)的容器,它是由Glass Pane
          與Layered Pane所組成(Layered Pane里擁有Content Pane與Menu Bar,而Menu Bar可選擇使用或不使用),
          我們不能在JRootPane上加入任何的組件,因?yàn)樗皇且粋€(gè)虛擬的容器,若要在最上層組件上加入組件,必須加在Layered Pane或是
          Layered Pane里的Content Pane上。以JFrame為例,一般我們要在JFrame上加入其他組件(如JButton、JLabel等)必須先取得JFrame
          的Content Pane,然后將要加入的組件放在此Content Pane中,而不是直接就加到JFrame上。因此若要在JFrame中加入一個(gè)按鈕,不
          能像以前AWT時(shí)一樣寫(xiě)成frame.add(button)的形式,而必須先取得JFrame的Content Pane,然后將按鈕加入Content Pane中,如:
          ?? frame.getContentPane().add(button)
          否則在編譯的時(shí)候?qū)⒂绣e(cuò)誤信息產(chǎn)生。
          &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
          注意:
          1.組件必須加在容器中,而容器本身具有層次性的關(guān)系,就如同珠寶盒一般,大盒子里面可以放小盒子,小盒子里面還可以放更小的盒子,而珠寶就可以放
          在某一個(gè)盒子中,這里的珠寶就代表組件,盒子就代表容器。因此若您想在JFrame加入任何組件時(shí),必須
          先取得JFrame的容器來(lái)放置這些組件,而由于JFrame、JDialog、JWindow與JApplet是顯示Swing組件的源頭,我們可以稱它們?yōu)楦?br />組件,也就是所謂的最上層組件。
          2.RootPaneContainer它是一個(gè)interface,共有5個(gè)類實(shí)現(xiàn)(Implement)它,分別是JFrame、JAppleet、JWindow、JDialog、
          JInternalFrame,其中JInternalFrame是一個(gè)lightweight Component,它不是一個(gè)最上層組件,也就是說(shuō)JInternalFrame不能單獨(dú)顯示出來(lái),必須依附在最上
          層組件中,我們將在下面討論組件,而JFrame,JApplet,JWindow,JDialog均為最上層組件。
          &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
          RootPaneContainer定義了下面幾種方法:
          ??? 方法
          ? Container?????? getContentPane()返回contentPane
          ? Component?????? getGlassPane()返回glassPane
          ? JLayeredPane??? getLayeredPane()返回layeredPane
          ? JRootPane?????? getRootPane返回屬于這個(gè)組件的JRootPane
          ? Void??????????? setContentPane(Container contentpane)設(shè)置ContentPane
          ? Void??????????? setGlassPane(Component glassPane)設(shè)置GlassPane
          ? Void??????????? setLayeredPane(JLayeredPane layeredPane)設(shè)置LayeredPane
          JFrame如何取得Content Pane的實(shí)際流程,下面是一段很簡(jiǎn)單的程序代碼:
          ? public class Simple{
          ??? Simple(){
          ?????? JFrame frame=new JFrame();
          ?????? Container contentPane=frame.getContentPane();
          ?????? JButton button=new JButton();
          ?????? contentPane.add(button);
          ??? }
          ? }
          當(dāng)我們寫(xiě)frame.getContentPane()時(shí),會(huì)返回此frame的Content Pane,也就是一個(gè)容器組件,有了容器之后我們才能將button組件
          擺進(jìn)去,此時(shí)JFrame才算擁有button組件。所以JFrame就好像是一塊空地,要在這空地上信人應(yīng)該先蓋一棟房子(容器),然后人
          、家具、設(shè)備等等(組件)就能搬進(jìn)此房子中。下面的層次結(jié)構(gòu)說(shuō)明了最上層組件都含有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 小尋 閱讀(374) 評(píng)論(0)  編輯  收藏 所屬分類: j2se/j2ee/j2me
          主站蜘蛛池模板: 包头市| 平泉县| 邹城市| 达孜县| 密山市| 敦化市| 天台县| 敖汉旗| 岚皋县| 郸城县| 如皋市| 皮山县| 称多县| 井冈山市| 大同县| 房产| 筠连县| 博客| 漠河县| 津市市| 民乐县| 三门峡市| 苗栗县| 高密市| 巩义市| 泸定县| 天全县| 旅游| 轮台县| 桃园县| 棋牌| 弥渡县| 梁河县| 稻城县| 邵阳市| 台前县| 阿城市| 元谋县| 天等县| 宝山区| 简阳市|