Javaプログラミング/Javaプログラミング関連情報

ルックアンドフィールで遊ぼう!(5ページ目)

Swingではルックアンドフィールを変更できます。自分だけのオリジナルなルックアンドフィールだって作れるんですよ!

執筆者:掌田 津耶乃

SynthでXML定義のテーマを作ろう!


Java 5からは、もう1つ新しいテーマとして「Synth」というものが加わりました。これは、「XMLでテーマを定義する」という面白いテーマです。つまり、ボタンなどのスタイルをXMLファイルとして用意し、これを読み込んでテーマを利用するのです。このSynthテーマは、以下のような形で利用します。

SynthLookAndFeel synth = new SynthLookAndFeel();
Class aClass = SampleApp.class;
java.io.InputStream is = aClass.getResourceAsStream("file1.xml");
synth.load(is, aClass);
UIManager.setLookAndFeel(synth);
SwingUtilities.updateComponentTreeUI(this);


ここでは、SampleAppクラスで「file1.xml」というXMLファイルを利用する形でサンプルコードを書いておきました。クラスファイルと同じ場所にfile1.xmlというファイル名でテーマの定義を用意しておけば、それを読み込んでテーマとして利用します。

Synthを利用するには、以下のような手続きを踏む必要があります。

1.SynthLookAndFeelのインスタンスを作成する。
2.Synthを適用するクラス(ここでは、SampleApp)のClassを用意する。
3.ClassのgetResourceAsStreamを呼び出し、引数に指定したXMLファイルからリソースを読み込むためのInputStreamを作成する。
4.SynthLookAndFeelインスタンスのloadで、InputStreamとClassをそれぞれ引数に指定し、XMLからテーマを読み込む。
5.UIManager.setLookAndFeelでSynthLookAndFeelをルックアンドフィールに設定する。
6.SwingUtilities.updateComponentTreeUIで表示を更新する。

他のテーマとだいぶ扱い方が違いますが、手順さえわかればそう難しいものではありませんね。

このSynthの最大の特徴は、「テーマを完全にソースコードから切り離してしまう」という点です。XMLで定義すればいいのですから、プログラマでなくとも、定義の仕方さえ知っている人間なら誰でも簡単にテーマを作ることができます。

現在、新しいJDKとして開発されているバージョンでは、新たに「Nimbus」というルックアンドフィールが用意されているのですが、これはSynthを使ってXMLファイルで表示を定義しています。Synthを使えば、本格的なルックアンドフィールも作れてしまうのです。では、実際に簡単なサンプルを作ってみましょう。こんなテーマです。


  • 前のページへ
  • 1
  • 4
  • 5
  • 6
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます