Swing Application Frameworkのリソースファイルで使用可能な表現一覧
S2Swingもリリースしたことだし、Swingについてどんどん書いていこうと思います。
Swing Application FrameworkにはResourceMapという機能があり、リソースをpropertiesファイルに書いておいてコンポーネントに自動インジェクションしたり、手動でルックアップしたりできます。
実は、このリソースファイルで定義できるオブジェクトの種類は結構多彩なんですが、あまり知られていないと思うので、以下に一覧を載せます。
種類 | 記述例 | 説明 |
---|---|---|
文字列 | abcde | 文字列 |
文字列参照 | ${button1.text} | ${}を使って、他の位置で定義された文字列を参照できる |
数値 | 123 | 数値 |
Boolean | true | "true", "on", "yes"のいずれかでtrueと評価される。それ以外はfalse |
MessageFormat | {0}, {1} | MessageFormatオブジェクト |
URL / URI | http://d.hatena.ne.jp/ | URL / URI |
Color | 255,0,0 | "#RRGGBB", "#AARRGGBB", "R,G,B", "R,G,B,A"の書式が使用可能 |
Icon | images/save.png | 指定されたパスの画像によるImageIcon |
Image | images/splash.jpg | 指定されたパスの画像 |
Font | Dialog-PLAIN-12 | "face-STYLE-size"。java.awt.Font.decode()と同じ書式 |
KeyStroke | control S | javax.swing.KeyStroke.getKeyStroke()と同じ書式 |
Dimension | 320,240 | "width,height" |
Point | 100,50 | "x,y" |
Rectangle | 0,0,200,100 | "x,y,width,height" |
Insets | 4,8,4,8 | "top,left,bottom,right" |
EmptyBorder | 2,2,2,2 | "top,left,bottom,right" |
表を見ると、UIの構築にフォーカスした便利な記法がいろいろサポートされていることが分かります。リソースファイルをCSS的に使えるイメージですね。
実際のリソースファイルは、例えば以下のような感じになります。
open.Action.text = &Open... open.Action.accelerator = control O open.Action.icon = images/open.png label1.text = Some Big Label label1.font = Arial-PLAIN-32 label1.foreground = #0000FF label1.focusable = false