[Java]103 Look and Feelの外観

これまで様々なLook and Feelを扱ってきましたが、Swingで作ったアプリの外観は美的観点から問題があるように思います。

デフォルトであるクロスプラットフォームL&FのMetalは青色が幅を利かせています。WindowsのTabbedPaneはbackgroundが薄い青色で塗りつぶされて見栄えは最悪です。

これを避けるためにコードの頭でUIManager.setLookAndFeelにてL&FをシステムL&Fに変更してみました。しかしWindowsのシステムL&Fも今ひとつです。特にJSliderのつまみは何故か透明で見れたもんじゃないです。加えてJButtonのマージンは横方向が無駄に大きく、フォントサイズをかなり小さくしないと”…”と表示されてしまいます。ここまで酷いとJavaでWindowsアプリを作る気にはならないでしょう。

MacのシステムL&FであるAquaは私の使う範囲ではJButtonのデザイン以外特に問題ないのですが、Windowsの場合はMetalもシステムL&Fもダメなので、結局JComponentを継承したクラスを必要なComponentに応じて自製しそれぞれ描画させています。

Swingの機能自体は素晴らしいというのに、肝心の見た目が悪ければプログラマとユーザーは離れてしまいます。新たなGUIライブラリの出現に期待したいところです。