LoginSignup
31
31

More than 5 years have passed since last update.

デザイナを使用してEclipseでJavaFX8開発をする

Last updated at Posted at 2014-11-30

概要

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変数でコントロールの名前を定義する。

SampleController.java
    @FXML private Button btn0;
    @FXML private TextField text;

などと書く。

・SampleController.javaにイベントを定義する。

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でデザインしやすくなっていくことを期待します。

31
31
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
31