synth は、 XMLプロパティ ファイルで設定するスキン可能なJavaルック アンド フィールです。 [ 1 ]
サン・マイクロシステムズによると、synthの目標は以下のとおりだった。
synth はJava のバージョンJ2SE 5.0以降で利用可能です( Java のバージョン履歴を参照)。[ 3 ]
Java SE 6 Update 10リリース以降には、 Synth で実装されたクロスプラットフォームのルックアンドフィールであるNimbusが含まれています。ただし、後方互換性のために、Metal は依然としてデフォルトの Swing ルックアンドフィールです。[ 4 ]
Synth はスキン変更可能なルックアンドフィールで、すべてのペイント処理はコンポーネントに委任されるため、コードを記述する必要はありません (Synth ルックアンドフィール[ 5 ]を参照)。[ 6 ]
ただし、synthにはデフォルトの外観設定がなく、synth XMLファイルで定義されていないコンポーネントは描画されません。しかし、他のすべてのウィジェットにデフォルトスタイルを割り当て、特定のウィジェットのみにスタイルをカスタマイズすることは可能です。
以下の XML 宣言は、textfield という名前のスタイルを定義し、すべてのテキストフィールドにバインドします。defaultStyleを使用すると、他のすべてのウィジェットにデフォルトのフォント、前景色、背景色を設定できます。
<synth> <style id= "defaultStyle" > <font name= "Verdana" size= "16" /> <state> <color value= "WHITE" type= "BACKGROUND" /> <color value= "BLACK" type= "FOREGROUND" /> </state> </style> <bind style= "defaultStyle" type= "region" key= ".*" /> <style id= "textfield" > <state> <color value= "yellow" type= "BACKGROUND" /> </state> <imagePainter method= "textFieldBorder" path= "textfieldborder.png" sourceInsets= "5 6 6 7" paintCenter= "false" /> <insets top= "5" left= "6" bottom= "6" right= "7" /> </style> <bind style= "textfield" type= "region" key= "TextField" /> </synth>XML宣言がsynthExample.xmlという名前のファイルで定義されていると仮定すると、次のコードはXML定義ファイルを読み込み、現在のルックアンドフィールをsynthに設定します(synthルックアンドフィールの読み込みは、 SynthLookAndFeelクラスのloadメソッドを使用して行われます[ 7 ])。
SynthLookAndFeel laf = new SynthLookAndFeel ( ); laf.load ( new File ( "synthExample.xml" ). toURI (). toURL ( ) ); UIManager.setLookAndFeel ( laf ) ;は新しい機能で、外部 XML ファイルを通じて外観と操作感を記述できます。
SynthPainterSynthは新しい機能で、外部XMLファイルを通じて外観と操作感を記述します。
Synth Look and FeelSynthは、Java UIプログラミングに「スキン」の概念を導入することで、開発者がアプリケーションのカスタム外観を迅速に作成および展開できるようにします。
SynthLookAndFeelSynth Look and FeelAPIドキュメント