Alexander Potochkin 氏による下記の blog エントリを、勝手に意訳してみる。
- Swing team reveals their secrets !
- http://weblogs.java.net/blog/alexfromsun/archive/2006/04/swing_team_reve_1.html
Swing チームが秘密を大公開!
皆さんもご存知の通り、Swing と AWT の挙動はコマンドラインプロパティで変更することができます。
例えば、下記のコマンドラインプロパティを使えば、お望みのルックアンドフィールに設定することができます。
swing.defaultlaf
詳細はこちらをご覧頂くとして、例えば次のように指定します。
java -Dswing.defaultlaf=com.sun.java.swing.plaf.windows.WindowsLookAndFeel <YourApp>
こうすると、アプリケーション起動時にデフォルトで Windows LaF が使用されます。他にもあります。
java.awt.headless
このプロパティは、アプリケーションを謎のヘッドレスモードに切り替えます (ご自宅では試さないでくださいね〜)。
ただ、Swing にはもっとスゴい未公開プロパティがあることは、あまり知られてないみたいですね。Swing チームのメンバーでさえ全部は知らないし。大変な苦労をして機能を実装したのに、後になってその問題をさくっと解決するプロパティを見つける、なんてこともあるかもしれません。
Mustang で、かの有名な灰色の四角形*1が改善されていることはご存知でしょうか。これ、実は、
swing.grayrect.color
というプロパティを Gray (デフォルト値の灰色) から Transparent (透明) に変更するだけで解決できるのです。
java -Dswing.grayrect.color=Transparent
これだけで、灰色の四角形を目にすることはなくなります。一番驚くのは、これが java 1.1 でも使えてしまうということです!
灰色の四角形を透明にするのがイヤなら、好きな色に変えることができます。例えば、
swing.grayrect.color=Violet
とすれば、退屈な灰色の四角形が、美しい紫にはやがわり!
他にもいくつかプロパティをご紹介しておきましょう。指定できる値を | で挟んで並べてあり、デフォルト値にはアスタリスクをつけてあります。
swing.runtwiceasfast=true*|false
Swing を倍速にします。
swing.completeleremoveawt=true|false*
このプロパティは実装途中。AWT チームからは、本当に要るのかコレ、と疑問の声あり。
swing.bugsnumber=ALOT | MEDIUM | AFEW* | NONE
値 NONE は、まだ完全にはテストされていませんので、試さないことをオススメしておきます。
java2d.speedofpainting=LOW | MEDIUM | FAST* | UNIMAGINABLE
このプロパティに値 UNIMAGINABLE を指定すると、Swing コンポーネントが目にも止まらぬ速度で描画されるようになります。
この一覧には、もっとプロパティを足さないとですね。他にもご存知でしたら、ぜひ教えてください。