4

JavaFXのVBoxBuilderとの違いを説明できる人はいますか?VBox

VBoxBuilder boxBuilder = VBoxBuilder.create();
VBox vBox1 = new VBox();
4

2 に答える 2

6

便宜上ビルダーが追加されます。新しい変数を導入することなく、1 つのコマンドで JavaFX ノードを作成できます。状況によってはより便利です。

次の 2 つのコード スニペットは同じ結果になりますが、後者は一時変数を作成しません。

ビルダーなし:

VBox vBox = new VBox();
vBox.setAlignment(Pos.CENTER);
vBox.getChildren().add(new Label("1"));
Scene scene = new Scene(vBox);

ビルダーで:

Scene scene2 = new Scene( 
    VBoxBuilder.create().alignment(Pos.CENTER).children(new Label("1")).build());

注意:オープン デベロッパーのメーリング リストで最近のようにビルダーの使用を控えた方がよいかもしれませんが、問題が発生したため、将来のリリースでビルダーが非推奨になる可能性があります: http://mail.openjdk.java.net/pipermail/openjfx-dev /2013-03/006725.html

于 2013-04-30T10:47:47.933 に答える
3

ビルダーとビルダーの代替案について

Sergey's answer にはこの質問が含まれています。これは補足情報です。

Advantages of JavaFX Buildersには、JavaFX ビルダー作成者の 1 人によるビルダー機能の優れた説明があります。

ただし、Sergey が指摘するように、ビルダーはコア JavaFX プラットフォームから非推奨になっています。Oracle は、JavaFX サンプル コードからすべてのビルダー参照を削除するのに忙しくしています。

非推奨ではありますが、ビルダー機能は JavaFX 8 に存在し、サポートされます (したがって、今後も長い間)。

Java ベースの JavaFX ビルダーの使用に代わるいくつかの方法:

  • FXMLを使用して、開発用の宣言構文を提供できます。これは、ビルダーにいくぶん似ています。

  • GroovyFXScalaFXなどの他の言語の JavaFX ラッパーは、JavaFX オブジェクト定義用の独自の内部 DSL を作成することにより、コア実装の一部としてビルダー スタイルの機能を提供します。

于 2013-04-30T17:28:38.303 に答える