有人能解释一下 JavaFX 中的
VBoxBuilder
和 VBox
之间的区别吗?VBoxBuilder boxBuilder = VBoxBuilder.create();
VBox vBox1 = new VBox();
VBoxBuilder
和 VBox
之间的区别吗?VBoxBuilder boxBuilder = VBoxBuilder.create();
VBox vBox1 = new VBox();
为了方便起见,提供了构造器。它们允许在一个命令中创建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-March/006725.html
关于构建器和构建器替代方案
Sergey已经回答了这个问题,这只是一些补充信息。
JavaFX构建器之一的创建者在JavaFX构建器的优势中对构建器功能进行了很好的描述。
然而,正如Sergey所指出的那样,构建器已经从核心JavaFX平台中弃用。Oracle正在忙于从JavaFX示例代码中删除所有构建器引用。
即使被弃用,构建器功能也将存在并受到JavaFX 8的支持(因此将长期存在)。
有一些使用基于Java的JavaFX构建器的替代方案: