2009年 1月 12日 月曜日
WidgetFX を使ってみました。
片貝さん から、WidgetFX ってちょっと使ってみてくれない?とお願いされたので、ちょっと使ってみました。なかなか面白そうなツールですね。
Widget FX は、JavaFX ベースのウィジェット (Windows ではガジェットと呼ばれる) を作成するための SDK です。使い方は簡単ですが、ドキュメントがあまりそろっていないような感じなので、この blog を書くのにはちょっと時間がかかってしまいましたね。でも、やり方さえわかってしまえば、JavaFX のアプリケーションを書く感覚で、ウィジェットを作成できるので、とても面白いと思います。
widgetfx のページから、SDK をダウンロードして解凍しておきます。SDK の中身は WidgetFX-API.jar と javadoc と LICENSE ファイルだけです。
2. NetBeans で、適当な JavaFX アプリケーションプロジェクトを作成する。
3. Libraries を右クリックして、「Add jar/folder」を選択する
4. #1 の WidgetFX-API.jar を追加する
Widget クラスでの、表示に関する処理は、 skin で定義されるようです。なので、skin の中で、表示するコンポーネントを scene で定義します。この scene は、Stage クラスの scene とは違い、Node 型で、直接 Swing コンポーネントなどを定義できます。(この辺りの仕様がちょっとよくわかりませんでした。ただ、ソースをみていただけば、なんとなくどうやって作るのかは感じがつかめるかと。
package javafxapplication7;
import javafx.scene.control.Skin;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import org.widgetfx.*;
Widget {
width: 100;
height: 100;
visible: true;
skin: Skin {
scene: Text{
y: 15
content: "Hello World"
fill: Color.GREEN
stroke: Color.RED
font: Font{
name:"Verdana"
}
}
}
}
これを、Web Start 形式 (JNPL) ファイルとしてビルドします。やり方は 片貝さんの blog の参照してみてください。また、同様にアプレットでも実行し、その web アドレスを保存しておいてください。後でウェジットを追加するテストの際に、そのアドレスを使用します。(私の場合は、http://localhost:8082/servlet/org.netbeans.modules.javafx.project.JnlpDownloadServlet/C%3A/Users/tkenji/Documents/NetBeansProjects/JavaFXApplication7/dist//JavaFXApplication7.html でした。)
ここで、先ほど作成した JNLP ファイルを追加するのですが、NetBeans が作成する JNLP のコードベースは、アプレットで実行したときと同じパスになるので、とりあえず、そのパスで追加します。
私の場合は、
http://localhost:8082/servlet/org.netbeans.modules.javafx.project.JnlpDownloadServlet/C%3A/Users/tkenji/Documents/NetBeansProjects/JavaFXApplication7/dist//JavaFXApplication7.jnlp
となります。
これで追加は完了です。ついでに、 Widget FX にあるサンプルもいくつか載せてみました。

それぞれのウィジットをドラッグ & ドロップで、デスクトップの好きな位置に配置することもできます。このときは、ウィジットの透明度を変化させられるスライドバーがつきます。この辺りもちょっと面白いですね。

最後に、お気づきの方もいらっしゃるかもしれませんが、上の方法だと、Hello World のウェジットは、NetBeans が起動している状態でないと、再起動に失敗します。なので、常に作成したウェジットを起動したい場合には、JNLP ファイルのコードベースを変更して、ローカルなりネット上なりで、起動できるように変更しておく必要があります。(NetBeans からコードベースの設定とかもできるといいんですけどね... ちょっと見た感じではなさそうでした。)
これを使えば、既存の JavaFX のアプリケーションも簡単に、ウェジットとしても使うことができそうですね。
Posted at 02:02午前 1 12, 2009 by kenji in JavaFX の素人 |