JavaベースのGUIアプリはいくつかあるけれど、JavaFXというのがだいぶいけてるらしい。
実際に使ってみたので、その備忘録(の準備編)。ちなみに、IDEはEclipse 4.5。
のまえに、個人的なJavaFXのいいところ
- 画面レイアウトをFXMLでかけて、ビューとロジックがきれいに分けれる!
- 画面の見た目もCSSで装飾できる!
- アノテーションを使ったデータバインディングができる!
- WindowsのexeやUbuntuのdepでパッケージングができる!
AndroidやWebアプリケーションを作っていると、ビューとロジック、レイアウトと装飾をそれぞれ分けれるのは幸せ
Swingだとそれぞれの責務がこんがらがって、メンテがつらいし。。。
また、画面レイアウトもGUIで作れるツールがあるので、デザイナとエンジニアの分業がしやすいなと
いろいろインストールして開発環境を整える
まずは、JavaFXの開発環境を整えるところから。
インストールするのは以下の2つ
- Eclipseプラグイン: e(fx)clipse
- 画面レイアウト作成ツール: Scene Builder - Gluon
- ドラッグアンドドロップでFXMLが作れるツール。というか、FXMLが複雑なので、これがないとつらい。
e(fx)clipseのインストール
ほかのプラグイン同様、Update Siteを追加してインストールするだけ。
公式のページにやさしく書いてあるので、詳細は割愛
SceneBuilderのインストール
以下のサイトからインストーラをダウンロードして、インストールするだけ。
torutkさんの日記によるとJava8u40以降、Oracleから提供されなくなり、Gluon社が代わりに提供しているらしい。
ちなみに、インストーラを使うとC:\Users\user\AppData\Local\SceneBuilder
にインストールされます
最後にe(fx)clipse に Scene Builder の場所を設定する
「ウィンドウ」→「設定」→「JavaFX」と選択
「SceneBuilder executable」に先ほどインストールした
Scene Builder の実行ファイル( JavaFX Scene Builder 1.1.exe )のパスを入力する。
引用元はこちら qiita.com
JavaFXのプロジェクトを作ってみる
プロジェクトの構成は「JavaFXプロジェクト」「Mavenプロジェクト」「Gradleプロジェクト」どれでもOK
今回は、Mavenプロジェクトの作成でやってみた
- MavenCentralに以下のカタログも公開されているので、そちらを使って作成
javafx-basic-archetype
javafx-rest-archetype
(JavaFX + REST)
- カタログを検索しても出てこない場合には、Eclipseの設定でリモートアーキタイプを追加すると解決する
- 追加するURLは「
http://repo.maven.apache.org/maven2/archetype-catalog.xml
」
- 追加するURLは「
- ただし、カタログで作成したプロジェクトではFXMLに外部ライブラリ(MidPane)を利用してるため、SceneBuilderが使えない。。。
- 必要な部分を適宜削除すればOK
とりあえず、Mavenでビルドしてみる
ビルドの前に、MavenのJavaバージョンの設定が必要(Mavenのデフォルトは1.5)
<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>
それだけ!
参考にしたサイト様
JavaFX全般
- Home|軽Lab
- JavaFXでHelloWorld - Qiita
- JavaFX Scene Builderを触ってみた! - えいのうにっき
- JavaFX 8 Tutorial - Part 1: Scene Builder | code.makery.ch
- JavaFX 8 Hello Word for Eclipse
- 【FXML利用】JavaFX8でControllerを疎結合に保って、画面遷移する方法 - Qiita
- JavaFX グループ/レイアウト|軽Lab
- JavaFxでHello World - expnotes9
JavaFX with Gradle
- JavaFX8 を Gradle で始める - A Memorandum
- Tutorial: A guide to the Gradle JavaFX Plugin - JAXenter
- shemnon / javafx-gradle — Bitbucket
- entera/gradle-javafx