|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個軟體套件 下一個軟體套件 | 框架 無框架 |
請參見:
描述
介面摘要 | |
---|---|
SynthConstants | 由 Synth 使用的常數。 |
類別摘要 | |
---|---|
ColorType | 可從某種樣式中獲取的一些顏色的型別安全列舉。 |
Region | Swing 元件的獨特呈現區域。 |
SynthContext | 一個不可變的瞬態物件,它包含有關 Region 的上下文資訊。 |
SynthGraphicsUtils | 用於基本圖形調用的套件裝器。 |
SynthLookAndFeel | SynthLookAndFeel 提供創建定制外觀的基礎。 |
SynthPainter | SynthPainter 用於繪製 JComponent 的某些部分。 |
SynthStyle | SynthStyle 是一個樣式屬性集。 |
SynthStyleFactory | 用於獲得 SynthStyle 的處理器。 |
Synth 是一個可更換皮膚 (skinnable) 的外觀,在其中可委託所有繪製。Synth 不提供預設外觀。為了使用 Synth,需要指定一個 file,或提供一個 SynthStyleFactory
。兩種配置選項都要求瞭解 synth 的架構(該架構如下所示),並瞭解 Swing 的架構。
除非另行指定,否則 null 對於 synth 套件中定義的所有方法而言都不是合法值,如果傳入 null,將導致 NullPointerException
。
Synth 中的每個 ComponentUI
實作都將自身與每個 Region
的一個 SynthStyle
相關聯,大多數 Component
只能有一個 Region
,所以也就只有一個 SynthStyle
。SynthStyle
用於存取所有與樣式有關的屬性:fonts、colors 和其他 Component
屬性。此外,SynthStyle
用於獲得繪製背景、邊框、焦點和 Component
的其他部分的 SynthPainter
。ComponentUI
從 SynthStyleFactory
中獲得 SynthStyle
。可直接通過 SynthLookAndFeel.setStyleFactory(javax.swing.plaf.synth.SynthStyleFactory)
或間接通過 SynthLookAndFeel.load(java.io.InputStream, java.lang.Class>)
提供 SynthStyleFactory
。以下範例使用 SynthLookAndFeel.load()
方法來配置 SynthLookAndFeel
,並將它設置為當前外觀:
SynthLookAndFeel laf = new SynthLookAndFeel(); laf.load(MyClass.class.getResourceAsStream("laf.xml"), MyClass.class); UIManager.setLookAndFeel(laf);
許多 JComponent
被拆分成更小的塊,並由 Region
中型別安全的列舉來標識。例如,JTabbedPane
由 JTabbedPane
的 Region
(Region.TABBED_PANE
)、內容區域 (Region.TABBED_PANE_CONTENT
)、選項卡背後的區域 (Region.TABBED_PANE_TAB_AREA
) 和選項卡 (Region.TABBED_PANE_TAB
) 組成。每個 JComponent
的每個 Region
都將有一個 SynthStyle
。這允許您定制每個 JComponent
的每個區域的個別片段。
許多 Synth 方法都採用一個 SynthContext
。SynthContext 用於提供有關當前 Component
的資訊,這些資訊包括:與當前 Region
關聯的 SynthStyle
、位遮罩碼形式的 Component
狀態(有關有效狀態,請參閱 SynthConstants
)和一個標識正被繪製的 Component
部分的 Region
。
由非 JTextComponent
呈現的所有文本都被委託給 SynthGraphicsUtils
,可以使用 SynthStyle
的方法 SynthStyle.getGraphicsUtils(javax.swing.plaf.synth.SynthContext)
獲取。通過提供自己的 SynthGraphicsUtils
,可以定制文本呈現。
Synth 為階層樹單元提供一個區域:Region.TREE_CELL
。要指定渲染器的顏色,可以為 TREE_CELL
區域提供一個樣式。以下程式碼展示了這一點:
<style id="treeCellStyle"> <opaque value="TRUE"/> <state> <color value="WHITE" type="TEXT_FOREGROUND"/> <color value="RED" type="TEXT_BACKGROUND"/> </state> <state value="SELECTED"> <color value="RED" type="TEXT_FOREGROUND"/> <color value="WHITE" type="BACKGROUND"/> </state> </style> <bind style="treeCellStyle" type="region" key="TreeCell"/>
這指定了一個顏色組合,當選中時,紅色將在白色之上;未選中時,白色在紅色之上。要查看背景,需要指定標籤是透明的,用以下 XML 程式碼段可以做到這一點:
<style id="labelStyle"> <opaque value="FALSE"/> </style> <bind style="labelStyle" type="region" key="Label"/>
JList 和 JTable 渲染器所使用的顏色通過列表和表 Region 的方式指定。以下 XML 程式碼段展示了如何在選中時指定紅色在白色之上,未選中時白色在紅色之上:
<style id="style"> <opaque value="TRUE"/> <state> <color value="WHITE" type="TEXT_FOREGROUND"/> <color value="RED" type="TEXT_BACKGROUND"/> <color value="RED" type="BACKGROUND"/> </state> <state value="SELECTED"> <color value="RED" type="TEXT_FOREGROUND"/> <color value="WHITE" type="TEXT_BACKGROUND"/> </state> </style> <bind style="style" type="region" key="Table"/> <bind style="style" type="region" key="List"/>
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個軟體套件 下一個軟體套件 | 框架 無框架 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。