倭マン's BLOG

くだらない日々の日記書いてます。 たまにプログラミング関連の記事書いてます。 書いてます。

はじめての幻獣 Griffon 研 (10) : 外部の Look & Feel を使用する install-plugin lookandfeel-xxx

前回に引き続き、今回も Look & Feel。 今回は外部の Look & Feel を使用する方法を見ていきます(一覧)。

まずはその前に・・・


前回見た方法では、アプリケーション・フレームのタイトルバーが変更されないようです(少なくとも拙者の環境では)。 タイトルバーにも Look & Feel の変更を反映させるためには、JFrame の defaultLookAndFeelDecorated を true に設定します。

具体的には

  • FunctionPlotter/griffon-app/views/functionplotter/FunctionPlotterView.groovy

に以下の1行を追加します:

// Look & Feel の追加設定
JFrame.defaultLookAndFeelDecorated = true

actions{ ... }

application{ ... }

ダイアログの Look & Feel も変更したいとき(JOptionPane が生成するダイアログを含む)は、さらに JDialog の同プロパティも true に設定します:

// Look & Feel の追加設定
JFrame.defaultLookAndFeelDecorated = true
JDialog.defaultLookAndFeelDecorated = true

actions{ ... }

application{ ... }

外部の Look & Feel プラグインを使用する


さて、では Look & Feel の変更を行っていきましょう。 ここでは以下の lookAndFeel, theme を使用することにします:

プラグイン lookandfeel-substance
lookAndFeel Substance
theme BusinessBlackSteel

手順は以下の通り:

  1. 必要な Look & Feel プラグインをインストールする
  2. Config.groovy を設定する

基本的には前回の方法と同じです。

必要な Look & Feel プラグインをインストールする

Substance Look &Feel を使用するには「lookandfeel-substance」プラグインをインストールする必要があります。 インストールには、以下のコマンドを実行します:

griffon install-plugin lookandfeel-substance

前回の lookandfeel プラグインがインストールされていなければ、もちろん自動でダウンロードされるので(その他必要なプラグインも含めて)、前回行ったような準備はする必要はありません。

Config.groovy を設定する

まぁ、前回と同じです。 Config.groovy は

  • FunctionPlotter/griffon-app/conf/Config.groovy

にあるんでした。 変更はこんな感じ:

lookandfeel{
    lookAndFeel = 'Substance'
    theme = 'BusinessBlackSteel'
}

実行結果

実行するとこんな感じ:

ちなみに

プラグイン lookandfeel-napkin
lookAndFeel Napkin
theme Napkin

でも実行してみました:

Griffon がサポートしている Look & Feel プラグイン


Griffon がサポートしている Look & Feel プラグインを列挙してみましょう。 詳しくは「Griffon - Plugins」の Look & Feel の項を参照して下さい。

プラグイン名 バージョン Look & Feel Theme
lookandfeel-a03*1 0.1 A03 A03
lookandfeel-easynth 0.1 EaSynth EaSynth
lookandfeel-jgoodies-looks 0.1 JGoodies
- Plastic
- Plastic3D
- PlasticXP
- Windows
lookandfeel-jtattoo 0.2 JTattoo Acrylic
Aero
Aluminium
Bernstein
Fast
Graphite
HiFi
Luna
McWin
Mint
Noire
Smart
lookandfeel-kunststoff 0.1 Kunststoff Desktop
Notebook
Presentation
lookandfeel-liquidlnf 0.1 Liquid Liquid
lookandfeel-metouia 0.1 Metouia Metouia
lookandfeel-napkin 0.1 Napkin Napkin
lookandfeel-nimrod 0.1 Nimrod NimROD
lookandfeel-officelnfs 0.1 Officelnfs Office 2003 / Office XP
VisualStudio 2005
lookandfeel-pgslaf 0.1 Pagosoft ElegantGray
JGoodies-BrownSugar
JGoodies-DarkStar
JGoodies-DesertBlue
NaitveColor
Silver
Vista
lookandfeel-quaqua*2 0.1
lookandfeel-skinlnf 0.1 Skin Amarach
Architect Blue / Architect Olive
b0sumi / b0sumi Ergo
BeOS
Blue Metal / Blue Turquesa
ChaNinja Blue
CoronaH
Cougar
Crystal2
Default
FatalE
Gfx Oasis
Gorilla
Hmm XP Blue / Hmm XP Mono Blue
iBar
MakkiX and MagraX
Midnight
Olive Green Luna XP
Opus Luna Silver
Opus OS Blue / Opus OS Deep / Opus OS Olive
QuickSilverR
Roue Blue / Roue Brown / Roue Green
Royal Insirant
Silver Luna XP
SolunaR
Tiger / Tiger Graphite
Underling
lookandfeel-squareness 0.1 Squareness Squareness
lookandfeel-substance 0.2 Substance Autum
Business
BusinessBlackSteel / BusinessBlueSteel
ChallengerDeep
Creme / CremeCoffee
DustCoffee / DustLook
EmeraldDusk
Gemini
Graphite / GraphiteAqua / GraphiteGlass
Magellan
Mariner
MistAqua / MistSilver
Moderate
Nebula / NebulaBrickWall
OffieceBlack2007/OfficeBlue2007/OfficeSilver2007
Raven
Sahara
Twilight
lookandfeel-tinylaf 0.1 Tinylaf Tinylaf
lookandfeel-tonic 0.1 Tonic Tonic

使用しているバージョンの Griffon がサポートしている Look & Feel はコマンド

griffon list-plugins

を実行することで確認できます。 このコマンドで表示されるプラグインのうち、lookandfeel-Xxxx という名前のものが使用できる Look & Feel です。

全て確かめたワケではありませんが、プラグインのバージョンは使用している lookandfeel プラグインのバージョンと同じようです。 つまり、lookandfeel-substance プラグインのバージョン 0.2 が使用する lookandfeel プラグインはやはり 0.2 です。

lookandfeel プラグインのバージョンについて


lookandfeel プラグイン自体の最新バージョンは 0.3 ですが、lookandfeel-substance プラグイン(の最新バージョン)が要求する lookandfeel プラグインのバージョンは 0.2 です。 インストールされている lookandfeel プラグインのバージョンが要求されているそれのバージョンより新しい場合は問題なくインストールされますが、プラグインによっては実行時に例外が発生したりするようです。

逆に、インストールされている lookandfeel プラグインのバージョンが lookandfeel-substance プラグインの要求するバージョンより低い場合(つまり lookandfeel 0.1 がインストールされている場合)、プラグインのインストール自体が失敗するようです。 この場合、インストールされている lookandfeel プラグインをアンインストールする必要があります。

プラグインのアンインストール


一度インストールしたプラグインをアンインストールするためにはコマンド

griffon uninstall-plugin [プラグイン名]

を実行すればいいはずですが、拙者の環境では全く作動しませんでした。 なので、ここでは手動でプラグイン(Look & Feel に関連するもの)をアンインストールする方法を見ていきます(FunctionPlotter プロジェクトに関して)。

変更もしくは削除が必要なのは以下のファイルです:

  • application.properties
  • Builder.groovy
  • ${user.home} 下のファイル・フォルダ

application.properties

まずは application.properties ファイル。 これはプロジェクトのルート・フォルダにあります。

  • FunctionPlotter/application.properties

lookandfeel-substance プラグインの場合は、以下の4行を削除します:

#Griffon Metadata file
#Tue Nov 16 04:44:16 JST 2010
app.griffon.version=0.9.2-beta-1
app.name=FunctionPlotter
app.version=0.1
// 以下を削除
plugins.lookandfeel=0.2
plugins.lookandfeel-substance=0.2
plugins.miglayout=0.1
plugins.trident-builder=0.5

ここでは plugins. すべてを削除していますが、他のプラグインをインストールしている場合には削除してはいけないものもあるので注意。

Builder.groovy

次は Builder.groovy ファイル。 ソースファイルは

  • FunctionPlotter/griffon-app/config/Builder.groovy

lookandfeel-substance プラグインの場合は、以下の部分を削除します:

root {
    'groovy.swing.SwingBuilder' {
        controller = ['Threading']
        view = '*'
    }
    'griffon.app.ApplicationBuilder' {
        view = '*'
    }
}

// 以下を削除
root.'MiglayoutGriffonAddon'.addon=true

root.'LookandfeelGriffonAddon'.addon=true

root.'griffon.builder.trident.TridentBuilder'.view = '*'

root.'LookandfeelSubstanceGriffonAddon'.addon=true

これも全て消せばいいというワケではありません。

${user.home} 下のファイル・フォルダ

さらに ${user.home} 下にキャッシュされているファイル・フォルダも削除します。 以下のフォルダ

  • ${user.home}/.griffon/0.9.2-beta-1/projects/FunctionPlotter/plugins

の下にプラグインに関するファイル・フォルダがあるので、対応するフォルダを削除します。

もしダメなら・・・

これでもプラグインが削除されないなら、さらに

  • ${user.home}/.griffon
  • ${user.home}/.ivy2

も削除してしまいましょう。 それでもダメなら新たに Griffon プロジェクト作り直しましょう。

追記


lookandfeel-substance プラグインを用いて Look & Feel を使用すると、テキストフィールドに文字を入力したときに "keyCode()" 云々の例外が投げられてしまうようです。 原因はイマイチよく分かりませんが、lookandfeel プラグインのバージョンを 0.3*3にすれば例外は投げられなくなります(少なくともテキストフィールドでは)。

lookandfeel 0.3 を使うためには

  • lookandfeel-substance プラグインをインストールする前に lookandfeel プラグインをインストールする(バージョンを指定しなくても最新版の 0.3 がインストールされる)
  • lookandfeel-substance プラグインをインストールしている場合は、上記の「プラグインをアンインストールする」に書いたやり方で(乱暴に:-P)lookandfeel プラグイン(lookandfeel-substance プラグインではない!)をアンインストールして、再度 lookandfeel プラグインをインストールする

とすれば OK なハズです。

Java Swing Hacks ―今日から使える驚きのGUIプログラミング集

Java Swing Hacks ―今日から使える驚きのGUIプログラミング集

  • 作者: Joshua Marinacci,Chris Adamson,神戸博之(監訳),島田秋雄(監訳),加藤慶彦
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2006/04/01
  • メディア: 単行本(ソフトカバー)
  • 購入: 7人 クリック: 100回
  • この商品を含むブログ (38件) を見る

*1:日本語ダメ。

*2:Mac のみ。

*3:普通に lookandfeel-substance プラグインをインストールすると、インストールされる lookandfeel プラグインのバージョンは 0.2