プロジェクト

全般

プロフィール

TornadoFX

はじめに

TornadoFXとは

KotlinからJavaFXを扱うにあたり、コード記述量を最小限で済むようKotlin言語機能を十分に活用したラッパーライブラリです。

公式サイト

GitHub上で開発されています。
https://github.com/edvin/tornadofx

ドキュメントは、「TornadoFX Guide」に集約されています。
https://edvin.gitbooks.io/tornadofx-guide/content/

ライブラリの使用

TornadoFXライブラリは、Mavenリポジトリにアップされているので、MavenおよびGradleを使う際はmavenリポジトリから取得するのが定番です。
GitHub開発サイト上から、リリースされたバージョンのソースコードとjarファイルを取得することもできます。

現在のバージョン

2018年3月13日現在、バージョン1.7.15がリリースされています。
対応するKotlinバージョンは1.2.21です。

開発環境

IntelliJ IDEA

IntelliJ IDEA Community Edtion 上のKotlin開発機能を使用します。TornadoFXプラグインも用意されているので、このプラグインを追加すると便利でしょう。

  • [ファイル]メニュー > [設定] > 左側ペインで[プラグイン]を選択、右側ペインで[リポジトリの参照]ボタンをクリック
  • 「リポジトリの参照」画面でTornadoFXを選択し、[インストール]をクリック

新規プロジェクトを作成する際、[TornadoFX]が選択可能、さらにmavenかgradleを選ぶことができます。

intelliJ_TornadoFX_Plugin-1.png (IntelliJにTornadeFXプラグインを入れ新規プロジェクト作成)

右側ペインでtornadofx-gradle-porjectを選択してプロジェクトを生成すると次のプロジェクトツリーが生成されます。デモ用のサンプルコードが含まれています。

intelliJ_TornadoFX_Plugin-2.png (TornadoFXプラグインで生成されるプロジェクトのテンプレート)

プロジェクトを作成時に、[自動インポートを使用する]にチェックを付けていない場合、IntelliJ IDEAからの通知メッセージに

リンクされていない Gradle プロジェクトですか?
Gradle プロジェクトのインポート により Gradle ツール・ウィンドウも有効になります。

と出るので下線部をクリックする。「Gradleからモジュールをインポート」画面が出るので[OK]ボタンを押します。Gradleの同期が走って必要なライブラリをダウンロードしてきます。

プログラミング例

最初はHello world

TornadoFXでは、最低限アプリケーションを実行する入口となるApp継承クラスと、ノードの配置を定義するView継承クラスの2つを定義します。
アプリケーションの入口となるAppを継承したMyAppクラスと、ノードの配置を定義するViewを継承したMyViewクラスを作成します。

ライブラリの仕様

ラッパークラス

App

tornadofx.Appクラスは、javafx.application.Applicationを継承したクラスで、Appクラスを利用する際はstartメソッドの実装は不要です。
また、mainを持つので、main関数の実装も不要です。

TornadoFX独自の概念

View

tornadofx.Viewクラスは、ノードのレイアウトと表示ロジックを含むクラスで、シングルトンとして扱われます。
Viewを利用する際は、Viewを継承したクラスで必ずrootプロパティ(Parent型)をオーバーライドし、それにビューの内容を詰めます。

また、Viewは別のViewに含めることができます。

Controller

Fragment

Viewはシングルトンですが、あるUIの構造を複数個所で使いまわしたいときは、Fragmentを使います。

クリップボードから画像を追加 (サイズの上限: 1 GB)