2010/06/08

Nimbus

JAVAでエフェクト・コンプレッサー自作の記録 6
JavaのGUI(Swing)にはいくつかのルック&フィールがあるがNimbusは一番新しいもの。 Nimbus は 2D ベクトルグラフィックスを使って描画されている。これはアイコンなどのイメージ画像が一切ないため、56KBのJARにすべてが収まっている。また画像でないため大きさ、解像度に対して自由度がある。Nimbusってかなり先端のGUIだと思う。軽くて、自由度があって、美しいのだ。

Nimbus


Metal
Nimbus以前のJava独自のルック&フィール。硬質で冷たい印象がする。

System
Windowsクラシックのスタイル。システム準拠のルック&フィールになるが、環境によっては崩れるという問題がある。

CDE/Motif
UNIX風のルック&フィール。

Nimbus表示するための設定
Swingの標準ではNimbusになっていないため、クライアント側で設定する必要がある。いくつか方法はあるようだが、ここでは以下のようにして設定した。

ファイル swing.properties へ記述する方法  
テキストエディタで swing.properties という名のファイルを作成して以下の内容を書き込む。
# Swing properties
swing.defaultlaf=com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel

そのファイルを以下のディレクトリに配置する。

C:\Program Files\Java\jre6\lib

これだけでNimbusが標準となる。これでSwingで作られたものは、アプレットだろうが、アプリだろうがデフォルトでNimbusとして表示される。作る側としては普通にSwingでつくればよい。下記はSwingで作ったアプレット。サイン波の周期をスライドで可変させるだけのもの。
Applet failed to run. No Java Plug-in was found.

ユーザーが何も設定しない場合は、ルック&フィールは互換性のためMetalが優先表示される。それをNimbus優先にさせるには、プログラムに以下を書き込むことで実現できる。
import javax.swing.UIManager.*;

try {
   for (LookAndFeelInfo info : 
           UIManager.getInstalledLookAndFeels()) {
      if ("Nimbus".equals(info.getName())) {
           UIManager.setLookAndFeel(info.getClassName());
           break;
       }
      }
    } catch (Exception e) {
  }
 getContentPane().setLayout(null);

コンプ製作の記録
1 Java 具体的に作ってみる
2 WAVについて
3 dBについて
4 コンプに必要な情報
5 Eclipseの導入
6 Nimbus
7 コンプの原理
8 コンプレッサーベータ版完成
9 NAMAGI Compressor