図形の描画
ImageViewは、基本的にイメージを表示するものですが、「Canvas」というコンポーネントをイメージとして設定することで、プログラム的に図形を描画し表示させることも可能です。これは、次のような構成となります。
<ImageView>
<image>
<media:Drawing>
<canvas>
<Canvas xmlns="org.apache.pivot.wtk.media.drawing">
……図形情報を記述する……
</Canvas>
</canvas>
</media:Drawing>
</image>
</ImageView>
<Window>タグには、xmlns:media="org.apache.pivot.wtk.media"を追加しておく必要があります。これを忘れると、<media:Drawing>が認識できなくなるので注意してください。では、簡単なサンプルを挙げましょう。
<Window title="Sample" maximized="true"
xmlns:wtkx="http://pivot.apache.org/wtkx"
xmlns:media="org.apache.pivot.wtk.media"
xmlns="org.apache.pivot.wtk">
<content>
<ImageView>
<image>
<media:Drawing>
<canvas>
<Canvas xmlns="org.apache.pivot.wtk.media.drawing">
<Rectangle x="25" y="25" width="100" height="100"
stroke="" fill="#00FFFF" />
<Ellipse x="75" y="75" width="100" height="100"
stroke="" fill="#ff0000" />
</Canvas>
</canvas>
</media:Drawing>
</image>
</ImageView>
</content>
</window>

図形は、RectangleとEllipseを使っています。これらは四角形・円を描くためのもので、それぞれx、y、width、height、stroke、fillといったプロパティを持っています。これらで、位置、大きさ、線分と塗りつぶしの色を指定します。この他、Line、Arc、Path、QuadCurveといった図形描画用の要素が用意されています。
実際問題として、複雑な図形はJavaのソースコードで記述した方が、Javaプログラマにとっては楽でしょうし、プログラム的に描画を操作する場合も扱いやすいでしょう。しかし、「XMLファイルに描画まで記述できる」ということの意味は大きいように思えます。テキストファイルを書き換えるだけで、プログラムに描画される図形を修正できるわけですから。
まとめ
今回は、Pivotのコンポーネント類を総覧的に紹介しました。それぞれの細かな使い方まで踏み込んでいないので、実際に利用する場合にはもっと深く理解しなければならない点もあるでしょう。あくまで「こんなにいろいろなものが用意されているんだ」というサンプルとして考えてください。
今回、まだ紹介しきれていないコンポーネントもあります。例えば、レイアウト用のペインなどはほとんど取り上げられませんでしたし、ツリー表示やテーブル、リスト表示などのデータを扱うものも見送りました。そうしたものまで含めると、PivotのコンポーネントはSwingなどと比べてもかなり豊富であることが分かるはずです。「豊富なコンポーネントを使ってGUIを構築できる」という点だけでも、Pivotを利用する価値は十分にある、と言えるでしょう。
