chofutaroメモ

ソフトウェアエンジニアによるソフトウェアエンジニアのためのメモ書き

swing.propertiesにシステムデフォルトのLook&Feelを設定する

Javaアプリケーションにおいて、Look&Feelを設定する方法を調べました。画面仕様を決める課程において試行錯誤できるよう、ボタン幅や背景色等の画面の共通仕様を簡単に設定・変更する方法が知りたかったためです。

id:torutkさんが[id:torutk:20080106]で触れられているように、Javaには以下の3つの方法があるようです。

  • プログラム中で記述
  • コマンドライン・オプションで指定する
  • JREのプロパティファイルで記述

試しに以下のようなファイルを作成して%JDK_HOME%\jre\lib\swing.propertiesとして保存すると、確かにWindowsっぽい見栄えになりました。

# Swing properties
swing.defaultlaf=com.sun.java.swing.plaf.windows.WindowsLookAndFeel

すごく簡単に変更することができました。Windowsのプログラムばかり作っていた時に、X-Windowのメカニズムに感動したことを思い出しました。

サンプル

所感

画面を伴うシステムにおいて、ユーザにはJava(Swing)で作られていようが、C#で作られていようが、その点は重要ではないことが大半だと思います。ユーザにとっては見やすく、使いやすいデザインであれば良いはずです。プロとしては『JavaだからMetalなデザインにならざるを得ません』とは言えません。ユーザが『ここはもっとXXXにして』という要望をおっしゃるならそれに応えることになると思います。
一方開発者視座で考えると、ユーザの要望に応えるためにゴリゴリとプログラムを追加・修正していては開発費がいくらあっても足りません。従って、開発環境には、簡単にルック&フィールを変更する方法が備わっていることが肝要ではないでしょうか。Javaはその点が充実しているように感じます。
ちなみに、C#等、.NET Frameworkの場合において、JavaのLook&Feelのように後付け的な変更をしようとすると、テーマを作成することになるのでしょうか?