javafx中VBoxBuilder与VBox的区别

时间:2013-04-30 10:08:50

标签: javafx-2 javafx vbox

任何人都可以解释JavaFX中VBoxBuilderVBox之间的区别吗?

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

2 个答案:

答案 0 :(得分: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());

NB:虽然您可能希望最近在开放式开发人员邮件列表中不使用构建器,但是引发了一个问题,可能导致在将来的版本中弃用构建器:http://mail.openjdk.java.net/pipermail/openjfx-dev/2013-March/006725.html

答案 1 :(得分:3)

关于构建器和构建器备选方案

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

Advantages of JavaFX Builders中的一个JavaFX构建器创建者对构建器功能有很好的描述。

然而,正如谢尔盖所​​说,建造者是deprecated from the core JavaFX platform。 Oracle正忙于从JavaFX示例代码中删除所有构建器引用。

即使已弃用,JavaFX 8中也会出现并支持构建器功能(因此很长一段时间内都会如此)。

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

  • FXML可用于为开发提供声明性语法,有点类似于构建器。

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

    < / LI>