##概要
JavaFX8を使用したアプリケーションを、デザインはScene Builder 2.0、コードはEclipseを使用して作成するため、各種インストール・設定を実施する。(参考のソース)
##ファイルのダウンロードとインストール
・Eclipse
JDK8が入っているもの(4.4以上?)
・Scene Builder 2.0(JavaFX8のデザインをGUIで作成する)
http://www.oracle.com/technetwork/java/javase/downloads/sb2download-2177776.html
msiをクリック(ソースからコンパイル)
http://gluonhq.com/open-source/scene-builder/
から実行ファイルをダウンロードできる。
・e(fx)clipse(EclipseとScene Builderを関連付ける)
メインサイト
http://www.eclipse.org/efxclipse/install.html
新規ソフトウェアのインストールで指定するURI
http://download.eclipse.org/efxclipse/updates-released/1.0.0/site
##EclipseでScene Builderの設定をする
・「ウィンドウ→設定→JavaFX」のScenBuilder executableを(デフォルトから変更してなければ)「C:\Program Files (x86)\Oracle\JavaFX Scene Builder 2.0\JavaFX Scene Builder 2.0.exe」と設定する
##EclipseでJavaFXのアプリケーションを作成する
・「ファイル→新規→その他」の新規ウィザードより、「JavaFX→JavaFX Project」。
・プロジェクト名を入れて、次へ、次へ
・Application type: 言語:FXML Desktop Root-type: javafx.scene.layout.BorderPane
・Main.javaを「右クリック→実行→Javaアプリケーション」で空のアプリケーションが起動される
・Sample.fxmlを「右クリック→Open with SecenBuilder」でレイアウトを編集する
##簡単なアプリケーションの流れ
・SecenBuilderにて外観を作成する
「Containers→Pane」上には、自由にコントロールを配置できるので、便利です。
(以前のJavaはVisual Studioみたいにはコントロールを配置できませんでしたが、ついに追いついたという感じがします。
ウィンドウのサイズ変更が謎の挙動ですが、、、)
・SampleController.javaにprivate変数でコントロールの名前を定義する。
@FXML private Button btn0;
@FXML private TextField text;
などと書く。
・SampleController.javaにイベントを定義する。
@FXML
public void onbtnNumberClicked(ActionEvent event) {
Object obj = event.getSource();
Button btn = (Button)obj;
String str = text.getText();
text.setText(str + btn.getText());
}
イベントはだいたい「public void methodName(ActionEvent event)」の型で定義するようです。
・SecenBuilderでコントロールの名前とイベントを設定する
コントロールをクリックし、「Code→fx:id」の右をクリックする。使用する名前を選択する。
コントロールをクリックし、「Code→On Action」の右をクリックする。使用するイベントを選択する
「File→Save」で保存する
・Main.javaを「右クリック→実行→Javaアプリケーション」で実行する。
##Visual Studio系との比較(現時点での私見)
・コントロールとコーディングの順番が逆
Visual Studioの場合、デザインをし、ボタンをダブルクリックして、ボタン用のコーディングを開始する。Scene Builderの場合、コーディングしてから、デザイナのボタンのイベントと結びつける。
・JavaFX8の方が、MVCを分けやすい
Visual Studioはボタンとそれに関する処理を一つのソースに納めがち。
Scene Builderの場合、ボタンの処理をJavaで書き、それの動作をFXMLに書くので、分けやすい気がする。
*デザイナがEclipseと別になっているので、デザイン時に軽い(ような気がする。大きなプログラムは作ってないので、不明)
*Visual Studioの方がデザイナーとして、使いやすい。JavaFX初心者なので、ウィンドウのサイズ変更がよくわからない。
##まとめ
ようやく?公式のJavaでVisualStudioのデザイナのような開発方法ができるようになりました。Javaのクライアントが採用されていくことと、Scene Builderでデザインしやすくなっていくことを期待します。