パッケージ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.TABBED_PANE)のRegion、コンテンツ領域(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の委譲を提供します。