JavaTM Platform
Standard Ed. 6

パッケージ javax.swing.plaf.synth

Synth は、すべてのペイントが委譲されるスキン設定可能な Look & Feel です。

参照先:
          説明

インタフェースの概要
SynthConstants Synth が使用する定数です。
 

クラスの概要
ColorType スタイルから取得できる型保証された色の列挙です。
Region Swing コンポーネントの個別の描画領域です。
SynthContext Region に関するコンテキスト依存の情報を含む不変の一時オブジェクトです。
SynthGraphicsUtils 単純な図形の呼び出しのためのラッパーです。
SynthLookAndFeel SynthLookAndFeel は、カスタマイズされた Look & Feel を作成するための基礎となるクラスです。
SynthPainter SynthPainter は、JComponent の一部分をペイントするときに使用します。
SynthStyle SynthStyle は、スタイルプロパティーのセットです。
SynthStyleFactory SynthStyle を取得するために使用するファクトリです。
 

パッケージ javax.swing.plaf.synth の説明

Synth は、すべてのペイントが委譲されるスキン設定可能な Look & Feel です。Synth にはデフォルトの外観はありません。Synth を使用するためには、ファイルを指定するか、SynthStyleFactory を提供する必要があります。どちらの構成オプションを使用する場合も、次に説明する合成アーキテクチャーの知識と Swing のアーキテクチャーの知識が必要です。

特に指定されていないかぎり、 Synth パッケージに定義されたメソッドに対して null は有効な値ではないため、null が渡されると、NullPointerException がスローされます。

Synth

Synth のそれぞれの ComponentUI 実装では、それ自体を Region ごとに 1 つの SynthStyle と関連付けます。 ほとんどのコンポーネントは Region を 1 つしか持っていないため、SynthStyle も 1 つだけとなります。SynthStyle は、スタイルに関連したプロパティー (フォント、色などの Component のプロパティー) にアクセスするために使用されます。また、Component のバックグラウンド、ボーダー、フォーカスなどの部分をペイントするために SynthPainter を取得する際にも使用されます。ComponentUI は、SynthStyleSynthStyleFactory から取得します。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 に関連付けられた SynthStyleComponent の状態を表すビットマスク (有効な状態については、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"/>


JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。