2013-04-30 154 views
4

VBoxBuilder和垂直框之间的差异可以解释人在JavaFX中VBoxBuilderVBox之间的区别?JavaFX中

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

关于[JavaFX Builders的优势]中的JavaFX构建器创建者之一的构建器功能有很好的描述(http://blog.netopyr.com/2012/01/24/advantages-of- JavaFX的助洗剂/)。但是,正如Sergey所表示的那样,构建器已从JavaFX核心平台中弃用。其他语言(如GroovyFX)(http://groovyfx.org/)和[ScalaFX](http://code.google.com/p/scalafx/)的JavaFX包装提供了构建器功能,作为其核心实现的一部分。 – jewelsea 2013-04-30 17:12:49

回答

3

等待建设者和建设者替代

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

有从Advantages of JavaFX Builders了JavaFX建设者的创造者之一的建设者功能一个很好的说明。

但是,正如Sergey所说,建设者是deprecated from the core JavaFX platform。 Oracle正忙于从JavaFX示例代码中删除所有构建器引用。

即使过时,建设者功能将出现在JavaFX的支持8(等了很长一段时间来)。

一些替代使用基于Java JavaFX的建设者:

  • FXML可以用来提供发展的声明语法是有点类似的建设者。

  • JavaFX的包装对其他语言如GroovyFXScalaFX提供建设者风格的功能通过创建JavaFX的对象定义自己的内部DSL其核心实现的一部分。

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

+0

thanx Sergey Grinev – 2013-05-01 06:50:57