4

谁能解释JavaFXVBoxBuilderVBoxJavaFX 之间的区别?

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

2 回答 2

6

为方便起见,添加了构建器。它们允许在一个命令中创建 JavaFX 节点,而无需引入新变量。在某些情况下更方便。

接下来的两个代码片段给出了相同的结果,但后者不创建临时变量。

没有建设者:

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-3月/006725.html

于 2013-04-30T10:47:47.933 回答
3

关于建筑商和建筑商替代品

谢尔盖的回答涵盖了这个问题,这只是一些补充信息。

JavaFX Builders 的优势中的一位 JavaFX 构建器创建者对构建器功能进行了很好的描述。

但是,正如 Sergey 所指出的,构建器已从核心 JavaFX 平台中弃用。Oracle 正忙于从 JavaFX 示例代码中删除所有构建器引用。

即使已弃用,JavaFX 8 中仍将存在并支持构建器功能(因此在很长一段时间内)。

使用基于 Java 的 JavaFX 构建器的一些替代方法:

  • FXML可用于为开发提供一种类似于构建器的声明性语法。

  • 其他语言(如GroovyFXScalaFX )的 JavaFX 包装器通过为 JavaFX 对象定义创建自己的内部 DSL,提供构建器样式功能作为其核心实现的一部分。

于 2013-04-30T17:28:38.303 回答