javafx
シーンビルダー
サーチ…
前書き
JavaFX Scene Builderはビジュアルレイアウトツールで、コーディングなしでJavaFXアプリケーションのユーザーインターフェイスをすばやく設計できます。 FXMLファイルを生成するために使用されます。
備考
JavaFX Scene Builderはビジュアルレイアウトツールで、コーディングなしでJavaFXアプリケーションのユーザーインターフェイスをすばやく設計できます。ユーザーは、UIコンポーネントをワークエリアにドラッグアンドドロップし、プロパティを変更したり、スタイルシートを適用したり、作成中のレイアウトのFXMLコードをバックグラウンドで自動的に生成したりできます。その結果、アプリケーションのロジックにUIをバインドすることによって、Javaプロジェクトと結合できるFXMLファイルが作成されます。
モデルビューコントローラ(MVC)の観点から:
- ユーザーインターフェイスの説明を含むFXMLファイルがビューです。
- コントローラはJavaクラスであり、FXMLファイルのコントローラとして宣言されているInitializableクラスを実装することもできます。
- このモデルは、Java側で定義されたドメインオブジェクトで構成され、コントローラを介してビューに接続できます。
シーンビルダーのインストール
Scene Builderの最新バージョンをGluonのWebサイトからダウンロードして、使用しているプラットフォームのインストーラまたは実行可能なjarファイルを選択します。
インストーラをダウンロードした状態で、システムにScene Builderをダブルクリックしてインストールします。更新されたJREが含まれています。
シーンビルダアイコンをダブルクリックしてスタンドアロンアプリケーションとして実行します。
IDE統合
シーンビルダはスタンドアロンアプリケーションですが、Java SEプロジェクトと統合されたFXMLファイルを生成します。このプロジェクトをIDEで作成するときは、シーンビルダーのパスへのリンクを含めると便利です.FXMLファイルを編集することができます。
- NetBeans:Windowsでは、NetBeans-> Tools-> Options-> Java-> JavaFXに移動します。 Mac OS Xでは、NetBeans-> Preferences-> Java-> JavaFXに移動します。シーンビルダホームのパスを指定します。
- IntelliJ:WindowsではIntelliJ-> Settings-> Languages&Frameworks-> JavaFXに移動します。 Mac OS Xでは、[IntelliJ] - > [環境設定] - > [言語とフレームワーク] - > [JavaFX]を選択します。シーンビルダホームのパスを指定します。
- Eclipse:Windowsでは、Eclipse-> Window-> Preferences-> JavaFXに移動します。 Mac OS Xでは、Eclipse-> Preferences-> JavaFXに移動します。シーンビルダホームのパスを指定します。
歴史の少し
Scene Builderプロジェクトは、JavaFX by Oracleを使用して作成され、OpenJFXプロジェクト内のオープンソースです。
Oracle は 、Java SE 8u40のリリース前にJavaFX機能のみを含むScene Builder v 2.0までバイナリを提供していたので、 Spinner
コントロールのような新機能は含まれていません。
Gluonはバイナリリリースのディストリビューションを引き継ぎ、最新のScene Builder 8+をすべてのプラットフォームでここからダウンロードできます 。
これには、JavaFXの最新の変更、最近の改善とバグ修正が含まれています。
問題、機能リクエスト、プルリクエストを作成できるオープンソースプロジェクトがここにあります。
Oracleレガシー・バイナリは、 ここからダウンロードできます 。
チュートリアル
シーンビルダのチュートリアルはここにあります:
- Oracle Scene Builder 2.0 チュートリアル
FXMLチュートリアルはここで見つけることができます。
- Oracle FXML チュートリアル
カスタムコントロール
Gluonは、ライブラリマネージャ(Scene Builder 8.2.0以降で利用可能)を使用して、サードパーティのjarファイルをカスタムコントロールでインポートすることを可能にする新しい機能を完全に文書化しました。
ご質問
タグ関連: SceneBuilder
FXMLを使用した基本JavaFXプロジェクト
これは、NetBeans(New Project - > JavaFX - > JavaFX FXMLアプリケーション)で作成されたFXMLを使用する基本的なプロジェクトです。それは3つのファイルだけを含んでいます:
メインアプリケーションクラス
package org.stackoverflow;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class BasicApplication extends Application {
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("BasicFXML.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
FXMLファイル
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<AnchorPane id="AnchorPane" prefHeight="200" prefWidth="320" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.stackoverflow.BasicFXMLController">
<children>
<Button layoutX="126" layoutY="90" text="Click Me!" onAction="#handleButtonAction" fx:id="button" />
<Label layoutX="126" layoutY="120" minHeight="16" minWidth="69" fx:id="label" />
</children>
</AnchorPane>
コントローラ
package org.stackoverflow;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Label;
public class BasicFXMLController {
@FXML
private Label label;
public void initialize() {
// TODO
}
@FXML
private void handleButtonAction(ActionEvent event) {
label.setText("Hello World!");
}
}
走る
プロジェクトのビルドと実行には、クリック可能なボタン付きの小さなウィンドウが表示されます。
使い方
簡潔には、メインアプリケーションクラスで、FXMLLoaderがロードされbasicFXML.fxml
によって指定されるように、JAR /クラスパスからFXMLLoader.load(getClass().getResource("BasicFXML.fxml"))
basicFXML.fxml
ロードすると、 basicFXML.fxml
fx:controller="org.stackoverflow.BasicFXMLController"
で指定されているように、ローダーはコントローラクラスの名前を見つけます。
次に、ローダーはそのクラスのインスタンスを作成し、 fx:id
を持つすべてのオブジェクトをFXMLに挿入しようとし、コントローラクラスの@FXML
アノテーションでマークされます。
このサンプルでは、FXMLLoaderは<Label ... fx:id="label"/>
に基づいてラベルを作成し、ラベルインスタンスを@FXML private Label label;
。
最後に、FXML全体がロードされると、FXMLLoaderはコントローラのinitialize
メソッドを呼び出し、アクションハンドラをボタンに登録するコードが実行されます。
編集
FXMLファイルはIDE内で編集できますが、IDEは基本的な構文チェックと自動補完を提供しますが、視覚的なガイダンスは提供していないため、お勧めできません。
最善の方法は、Scene BuilderでFXMLファイルを開き、すべての変更をファイルに保存することです。
または、IDEから直接Scene Builderでファイルを開くこともできます:
- NetBeansの[プロジェクト]タブで、ファイルをダブルクリックするか、右クリックして[
Open
]を選択します。 - IntelliJのプロジェクトタブで、ファイルを右クリックし、
Open In Scene Builder
を選択します。 - Eclipseのプロジェクトタブで、ファイルを右クリックし、「
Open with Scene Builder
選択します。
シーンビルダが正しくインストールされ、そのパスがIDEに追加されている場合(下記の「備考」を参照)、ファイルが開きます:
新しいコンテナまたは新しいコントロールを左のペインからドラッグすることで変更できます。また、プロパティとレイアウトの値は右のペインで変更できます。
FXMLをJavaコードに挿入できるidタグの1つはfx:id
です。 Code
ペインで設定することができます:
変更を適用した後、ファイルを保存します(シーンビルダ - >ファイル - >保存)。 IDEからファイルを編集して変更を加えた場合、ファイルを保存するときにシーンビルダでそのファイルが更新されます。