?? s01.htm
字號:
<i>JOptionPane</i> 顯示標準的對話框,如:消息和問題對話框<br> <i>JPanel</i> 通用容器,它是AWT面板和畫布組件的替代組件<br> JPasswordfield JTextField的擴展,使輸入的字符不可見<br> <i>JPopupMenu</i> 彈出式菜單,它是AWT彈出式菜單組件的替代組件<br> JProgressBar 進度指示器<br> <i>JRadioButton</i> 單選按鈕,它是AWT復選框組件的替代組件<br> JRootPane 頂層容器,它包含一個玻璃窗格,一個層窗格,一個內容窗格和一個可選的菜單條<br> <i>JScrollBar</i> 滾動條,它是AWT滾動條組件的替代組件<br> <i>JScrollPane</i> 滾動窗格,它是AWT滾動窗格組件的替代組件<br> JSeparator 水平或垂直分隔條<br> JSlider 滑桿<br> JSplitPane 有兩個分隔區的容器,這兩個分隔區可以水平排列或者垂直排列且分隔區的大小能自動調整<br> JTabbedPane 帶選項卡的窗格<br> JTable 表格<br> JTableHeader 表格頭<br> <i>JTextArea</i> 用于輸入多行文本的文本域,它是AWT文本域組件的替代組件<br> <i>JTestComponent</i> 文本組件的基類,它替代AWT的TextComponent類<br> <i>JTextField</i> 單行文本域,它替代AWT的單行文本域組件<br> <i>JTextPane</i> 簡單的文本編輯器<br> JToggleButton 兩種狀態的按鈕,它是JCheckBox和JRadioButton組件的基類<br> JToolBar 工具條<br> JToolTip 當光標停留在一個組件上時,該組件上顯示的一行文字<br> JTree 用于按鈕層次組織數據的結構控件<br> JViesport 用于瀏覽可滾動組件的視口<br> <i>JWindow</i> 外部窗口,它是java.awt.Window的擴展<br> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br> 注:斜體字表示的是AWT的替代組件</p> <p> <b>插入式界面模式</b></p> <p> Swing支持插入式界面樣式,界面模式的基礎是“模型-視圖-控制器”體系結構的變體。圖1-3圖解說明了在不同的界面樣式下運行的小應用程序。<br> 修改小應用程序或應用程序的界面樣式不需要修改程序代碼,通過把$ JDK_HOME/lib目錄下的swing.properties文件中的swing.defaultlaf屬性設置為所需要的界面樣式類型,就可以在運行時刻設置缺省的界面樣式。下面是swing.properties文件的一個例子,它通過指定defaultlaf屬性來設置缺省的界面樣式:<br> # swing.properties example file. Lines that begin with '#' are<br> # comments.<br> # The Mac look and feel is specifed as the default look and<br> # feel below. If no look and feel is specifed.then the default<br> # look and feel (metal) is used.<br> # the next line specifies which look and feels are installed.<br> swing.installedlafts=metal,motif,windows,mac<br> # default set to Mac look and feel<br> swing.defaultlaf=javax.swing.plaf.mac.MacLookAndFeel<br> # swing.defaultlaf=javax.swing.plaf.windows.WindowsLookAndFeel<br> # swing.defaultlaf=javax.swing.plaf.motif.MotifLookAndFeel<br> 在第7章“插入式界面樣式”中介紹了插入式界面樣式的Swing實現。</p> <p><b> <a name="1.5"></a>1.5 Swing包概覽</b></p> <p> Swing由許多包組成,表1-2中列出了這些包</p> <p> <b>表1-2 Swing包</b><br> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br> <b>包 描述 </b><br> ─────────────────────────────────<br> com.sun.java.swing.plaf.motif 用戶界面代表類,它們實現Motif界面樣式<br> com.sun.java.swing.plaf.windows 用戶界面代表類,它們實現Windows界面樣式<br> javax.swing Swing組件和實用工具<br> javax.swing.border Swing輕量組件的邊框<br> javax.swing.colorchooser JColorChooser的支持類/接口<br> javax.swing.event 事件和偵聽器類<br> javax.swing.filechooser JFileChooser的支持類/接口<br> javax.swing.pending 未完全實現的Swing組件<br> javax.swing.plaf 抽象類,它定義UI代表的行為<br> javax.swing.plaf.basic 實現所有標準界面樣式公共功能的基類<br> javax.swing.plaf.metal 用戶界面代表類,它們實現Metal界面樣式<br> javax.swing.table JTable組件的支持類<br> javax.swing.text 支持文檔的顯示和編輯<br> javax.swing.text.html 支持顯示和編輯HTML文件<br> javax.swing.text.html.parser html文件的分析器類<br> javax.swing.text.rtf 支持顯示和編輯RTF文件<br> javax.swing.tree JTree組件的支持類<br> javax.swing.undo 支持取消操作<br> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br> swing包是Swing提供的最大包,它包含將近100個類和25個接口。幾乎所有的Swing組件都在swing包中,只有JTableHeader和JTextComponent是例外,它們分別在swing.table包和swing.text包中。<br> swing.border包中含有數個在輕量Swing組件的邊襯中畫邊框的類。border包由一個Border接口、一個AbstractBorder類和AbstractBorder的許多具體擴展組成。<br> swing.event包中定義了事件和事件監聽器類,swing.event包與AWT的event包類似。awt.event和swing.event都包含事件類和監聽器接口,它們分別響應由AWT組件和Swing組件激發的事件。例如,當在樹組件中需要節點擴展(或折疊)的通知時,則要實現Swing的TreeExpansionListener接口,并把一個TreeExpansionEvent實例傳送給TreeExpansionListener接口中定義的方法。TreeExpansionListener和TreeExpansionEvent都是在swing.event包中定義的。 <br> Swing.pending包包括仍沒有完全實現的Swing組件。在Swing1.1 FCS中,pending包包含選擇器(日期、貨幣選擇器)計算器、彈出式按鈕等等。pending包中的組件最終會放到swing包中。<br> 雖然Swing的表格組件(JTable)在swing包中,但它的支持類卻在swing.table包中。表格模型、單元繪制器和編輯器等都在swing.table包中。<br> 與JTable類一樣,Swing的樹類JTree(用于按層次組織數據的結構組件)也在swing包中,而它的支持類卻在swing.tree包中。swing.tree包提供樹模型、樹節點、樹單元編輯器和繪制器等支持類。<br> Swing有四個用于顯示和編輯文檔的包:swing.text、swing.text.html、swing.text.html.parser和swing.text.rtf。swing.text包為Swing的文檔模型提供了所有必須的下層構件。包括用于文檔、元素、加字符、增亮、編輯工具包等的類和接口。swing.text.html和swing.text.rtf包是Swing最小的兩個包:它們分別提供用于實現HTML(超文本標記語言)和rtf(多文本格式)文檔編輯器的編輯器工具包。swing.text.html.parser包中含有分析html文件的支持類。 <br> Swing.undo包為實現取消操作提供支持。<br> swing.plaf包中的類形成了Swing插入式界面樣式的UI代表部分的基礎。UI代表為它們的相關組件實現界面模式。<br> swing.plaf包中的大多數類定義UI資源或擴展swing.ComponentUI類。swing.ComponentUI類定義所有UI代表的公共行為。在swing.plaf包中的UI代表類(即名字以UI結尾的類)通常為特定的組件定義附加的抽象方法。例如,swing.plaf.ButtonUI類擴展swing.ComponentUI類并添加了抽象方法getDefaultMargin(),該方法返回按鈕邊框與按鈕內容之間的間距。<br> swing.plaf.basic包擴展在swing.plaf包中定義的類,并且實現所有標準Swing界面樣式共有的特性。例如:swing.plaf.basic.BasicButtonUI類提供了swing.ComponentUI類和swing.plaf.ButtonUI類定義的一些方法的缺省實現。BasicButtonUI類還為paint等方法提供了多個不同的實現(paint方法繪制按鈕的文本和圖標)。BasicButtonUI還以無操作形式實現其他與界面樣式有關的方法,如paintButtonPressed()方法。這些方法將被特定的界面樣式擴展所重載。<br> metal和motif包實現相應界面樣式的UI代表類。通常,UI代表類擴展swing.plaf.basic包中的類。例如,metal.ButtonUI類重載swing.plaf.basic.ButtonUI類中的paintButtonPressed方法的無操作實現。<br> Swing.plaf.multi包支持界面樣式復用。界面樣式復用允許多個UI代表與一個組件相關聯。例如。一個按鈕UI代表可能同時與一個視覺UI代表和一個音頻UI代表相關聯,這樣,當這個按鈕被激活時,不難能產生可視的反饋信息,還能播放一個聲音。UI復用的主要用途是使組件更具可訪問性。<br> Swing還提供了其他兩種界面樣式實現,即mactintosh和Organic的界面樣式。 </p> <p><b> <a name="1.6"></a>1.6 Swing與AWT</b></p> <p> 對Swing最普遍的錯誤概念是認為其設計目的是用來替代AWT的。事實上,Swing建立在AWT之上,如圖1-4所示。<br> ┌─────────┬──────────┐<br> │Swing重量組件│?。樱鳎椋睿巛p量組件│ <br>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -