2016年7月4日月曜日

JavaFX 開発で Scene Builder を使いはじめて気付いた Tips

JavaFX で UI を作るのに fxml を直接書く、というのは初学者にはなんとも敷居が高いと思う。
(もちろん、勉強&仕組みを知るために書いてみること自体は否定しない)
fxml ではなく、普通に Java のコードで生成していくのもあるし、そういうサンプルもある。
ただ、現時点では Scene Builder を使うのが何かと敷居が低いし、とっつきやすいと思う。
(先の記事でとりあげた入門ページでも Scene Builder を使っている)

で、Scene Builder を使い始めて感じた Tips のメモ

そもそも Scene Builder の入手方法

まず Scene Builder の入手方法

Oracle のページ(ここここ)に行くと、Oracle ではもう古い版しか配布していないことが分かる。
(Java SE 8u40以降は Scene Builder の最新版のバイナリ配布を止めている)

で、現時点では OpenJFX として開発・公開が続いているが OpenJFX Wiki に行くと、ソースコードからのビルドを解説されて初学者としては挫折しそうになる。

ただ Gluon という会社が http://gluonhq.com/labs/scene-builder/#download でバイナリ配布をしてくれているので、そこから入手するのが早いです。

そこらへんの経緯や議論は
辺りを見てみて下さい。

NetBeans / Eclipse と Scene Builder の組み合わせ方法

NetBeans, Eclipse ともに
に手順や解説があります(IntelliJ IDEA についても書いてあるが使ってないので省略)。

Eclipse の場合には e(fx)clipse というプラグインを Help → Eclipse Marketplace 経由からインストールすれば良いし(ただ公式のインストール方法の方が最新版が手に入る様子)、
NetBeans なら設定に最初から Scene Builder との連携が想定されています。
(NetBeans 8.0 + 上の Gulon 配布の Scene Builder バイナリの組み合わせがそのままだと動かないという記事がありましたが、最新版の 8.1 では NetBeans で Scene Builder へのパスを設定するだけで問題なく使えました)

Controller は手書きしないとダメ?

そんなことは無いです。
新規時の一方方向ですが、Eclipse + e(fx)clipse, NetBeans 共に、fxml ファイルから Controller を次のように生成できます。
  • Eclipse + e(fx)clipse:
    fxml のエディタ画面内でコンテキストメニューを開いて、 Source → Generate Controller
    (公式の解説はこちらのページ
  • NetBeans:
    fxml のファイルを選択してコンテキストメニューを開いて「コントローラの作成」
ただ、初回作成時の一方方向なので、途中で fxml に変更が入った場合には Controller 側は手作業で変更する必要があります。
そういう意味でも、手作業で Controller を作っている入門ページや「Connecting SceneBuilder edited FXML to Java code」といったページで Controller と fxml の連携の部分を良く理解しておいた方が良いです。

Scene Builder のまとまった解説(書)はない?

にある Documentation 群や

JavaFX Scene Builderメモ(Hishidama's JavaFX Scene Builder Memo) http://www.ne.jp/asahi/hishidama/home/tech/java/fx/sb/index.html

辺りでしょうか…

他に良いものがあれば私も知りたいです。

0 件のコメント:

コメントを投稿