Skip to end of metadata
Go to start of metadata

SwingBuilderはSwingのGUIを作成するための簡潔な方法を提供します。その方法とはGroovyのイディオムとビルダーを使うことで実現します。複数の子コンポーネントを生成してSwingのメソッドを呼び出し、その子コンポーネントたちを親コンポーネントに関連付けるといった複雑なオブジェクトを作成するときの面倒な作業をビルダーが処理してくれます。その結果、あなたが書いたコードでは可読性とメンテナンス性が向上すると同時に、すべてのSwingコンポーネントを利用することができます。

SwingBuilderを使ったシンプルな例:

このコードを実行すると次のようになります:

このようなコンポーネント階層は、通常、インスタンスを生成して、セッターメソッドを呼び出して、コンポーネントの親子関係を紐付けるといった一連の流れを繰り返して作成されます。しかし、SwingBuilderを利用することで、可読性が高くインターフェイスの分かりやすいコンポーネント階層を自然な形で定義することができます。
ここに示した柔軟さはGroovyに組み込まれている多くの機能(クロージャ、暗黙的コンストラクタ呼び出し、エイリアスの利用、文字列の補間など)を利用することで可能になります。SwingBuilderの使い方をすべて理解する必要はありませんが、上記のコードのようにSwingBuilderを使った方が直感的です。


ここでもう少し複雑な例を挙げます。クロージャの再利用をしたSwingBuilderの例です。

メーラーのユーザインターフェイス

* Alphabetical Widgets List

@Bindable と @Vetoable によるAST変換


SwingBuilder固有ののもではありませんが、Groovy 1.6 からSwing開発者に関心のあるBindable と Vetoable 変換 が導入されました。

  • No labels