2013-04-30 373 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