パッケージjavax.swing.plaf.synth
SynthStyleFactory
を提供する必要があります。 どちらの構成オプションを使用する場合も、次に説明する合成アーキテクチャの知識とSwingのアーキテクチャの知識が必要です。
特に指定されていないかぎり、Synthパッケージに定義されたメソッドに対してnullは有効な値ではないため、nullが渡されると、NullPointerException
がスローされます。
Synth
Synthの各ComponentUI
実装は、自身をRegion
ごとに1つのSynthStyle
に関連付けます。ほとんどのComponents
にはRegion
が1つしかないため、SynthStyle
は1つだけです。 SynthStyle
は、スタイルに関連したすべてのプロパティ(フォント、色などのComponent
のプロパティ)にアクセスするために使用されます。 また、SynthStyle
は、Component
のバックグラウンド、ボーダー、フォーカスなどの部分をペイントするためにSynthPainter
を取得する際にも使用されます。 ComponentUI
は、SynthStyle
をSynthStyleFactory
から取得します。 SynthStyleFactory
は、SynthLookAndFeel.setStyleFactory(javax.swing.plaf.synth.SynthStyleFactory)
を介して直接提供することも、SynthLookAndFeel.load(java.io.InputStream, java.lang.Class<?>)
を介して間接的に提供することもできます。 次の例では、SynthLookAndFeel.load()
メソッドを使用してSynthLookAndFeel
を構成し、それを現在のLook & Feelとして設定しています。
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
が1つずつあります。 これにより、各JComponent
の各領域の個々の部分をカスタマイズできます。
多くのSynthメソッドはSynthContext
を取ります。 これは、現在のComponent
に関する情報を提供するために使用され、現在のRegion
に関連付けられたSynthStyle
、Component
の状態を表すビット・マスク(有効な状態については、SynthConstants
を参照)、およびペイントされるComponent
の部分を識別するRegion
が含まれています。
JTextComponent
以外によるテキストの描画はすべて、SynthGraphicsUtils
に委譲され、これは、SynthStyle
のメソッドSynthStyle.getGraphicsUtils(javax.swing.plaf.synth.SynthContext)
を使って取得されます。 テキスト描画は、独自のSynthGraphicsUtils
を指定することでカスタマイズできます。
各コンポーネントのノート
JTree
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
JListとJTableのレンダラで使用する色は、リスト領域とテーブル領域を使って指定します。 次の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"/>
-
クラス説明スタイルから取得できる型保証された色の列挙です。Swingコンポーネントの個別の描画領域です。
JButton
のSynth L&F UIの委譲を提供します。JCheckBoxMenuItem
のSynth L&F UIの委譲を提供します。JCheckBox
のSynth L&F UIの委譲を提供します。JColorChooser
のSynth L&F UIの委譲を提供します。JComboBox
のSynth L&F UIの委譲を提供します。Synthが使用する定数です。Region
に関するコンテキスト依存の情報を含む不変の一時オブジェクトです。デスクトップ上の最小化された内部フレームのSynth L&F UIの委譲を提供します。JDesktopPane
のSynth L&F UIの委譲を提供します。JEditorPane
のSynth L&F UIの委譲を提供します。JFormattedTextField
のSynth L&F UIの委譲を提供します。単純な図形の呼出しのためのラッパーです。SynthContext
を渡されたアイコン。JInternalFrame
のSynth L&F UIの委譲を提供します。JLabel
のSynth L&F UIの委譲を提供します。JList
のSynth L&F UIの委譲を提供します。SynthLookAndFeelは、カスタマイズされたLook & Feelを作成するための基礎を提供します。JMenuBar
のSynth L&F UIの委譲を提供します。JMenuItem
のSynth L&F UIの委譲を提供します。JMenu
のSynth L&F UIの委譲を提供します。JOptionPane
のSynth L&F UIの委譲を提供します。SynthPainter
は、JComponent
の一部分をペイントするときに使用します。JPanel
のSynth L&F UIの委譲を提供します。JPasswordField
のSynth L&F UIの委譲を提供します。JPopupMenu
のSynth L&F UIの委譲を提供します。JProgressBar
のSynth L&F UIの委譲を提供します。JRadioButtonMenuItem
のSynth L&F UIの委譲を提供します。JRadioButton
のSynth L&F UIの委譲を提供します。JRootPane
のSynth L&F UIの委譲を提供します。JScrollBar
のSynth L&F UIの委譲を提供します。JScrollPane
のSynth L&F UIの委譲を提供します。JSeparator
のSynth L&F UIの委譲を提供します。JSlider
のSynth L&F UIの委譲を提供します。JSpinner
のSynth L&F UIの委譲を提供します。JSplitPane
のSynth L&F UIの委譲を提供します。SynthStyle
は、スタイル・プロパティのセットです。SynthStyle
を取得するために使用するファクトリです。JTabbedPane
のSynth L&F UIの委譲を提供します。JTableHeader
のSynth L&F UIの委譲を提供します。JTable
のSynth L&F UIの委譲を提供します。Synth Look & Feelのプレーン・テキスト・エディタのLook & Feelを提供します。JTextField
のSynth L&F UIの委譲を提供します。Synth Look & Feelの書式付きテキスト・エディタのLook & Feelを提供します。JToggleButton
のSynth L&F UIの委譲を提供します。JToolBar
のSynth L&F UIの委譲を提供します。JToolTip
のSynth L&F UIの委譲を提供します。JTree
のSynth L&F UIの委譲を提供します。SynthUIは、特定のコンポーネントのSynthContextを取得するために使用します。JViewport
のSynth L&F UIの委譲を提供します。