|
|||||||||
软件包 javax.swing.plaf.synth
Synth 是一个可更换皮肤 (skinnable) 的外观,在其中可委托所有绘制。请参见:
描述
接口摘要 | |
---|---|
SynthConstants | 由 Synth 使用的常量。 |
类摘要 | |
---|---|
ColorType | 可从某种风格中获取的一些颜色的类型安全枚举。 |
Region | Swing 组件的独特呈现区域。 |
SynthContext | 一个不可变的瞬态对象,它包含有关 Region 的上下文信息。 |
SynthGraphicsUtils | 用于基本图形调用的包装器。 |
SynthLookAndFeel | SynthLookAndFeel 提供创建自定义外观的基础。 |
SynthPainter | SynthPainter 用于绘制 JComponent 的某些部分。 |
SynthStyle | SynthStyle 是一个样式属性集。 |
SynthStyleFactory | 用于获得 SynthStyle 的工厂。 |
软件包 javax.swing.plaf.synth 的描述
Synth 是一个可更换皮肤 (skinnable) 的外观,在其中可委托所有绘制。Synth 不提供默认外观。为了使用 Synth,需要指定一个 file,或提供一个 SynthStyleFactory
。两种配置选项都要求了解 synth 的架构(该架构如下所示),并了解 Swing 的架构。
Synth
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
,可以自定义文本呈现。
除非另有说明,否则 null 对于 synth 中定义的所有方法而言都不是合法值,如果传入 null,将导致 NullPointerException
。
所有类
|
|||||||||