2014-12-27 29 views
0

有水平分割窗格。如果窗格增長,那麼兩個內部窗格將平均增長(如果分割窗格增長100像素,則每個內部窗格增長50個像素)。SplitPane內部窗格的增長比率變化

是否有可能調整這使第二個內部窗格增長比第一個更多?就像第一個獲得25%的增長,第二個獲得75%。

+0

@GilbertLeBlanc您的鏈接提供了Swing教程,但Voldemort要求提供JavaFX SplitPane。 – eckig 2014-12-28 09:10:04

回答

1

SplitPane對這個沒有直接的API,但間接我們可以做到這一點..

API doc給了我們一個提示:

在SplitPane分隔物有以下行爲:。 ..]

  • 當達到節點的最小尺寸時,向左/向上移動的分隔線將停止。
  • 當達到節點的最大尺寸時,向右/下移動的分隔線將停止。 [...]

因此,通過設置最小尺寸,我們可以強制在將splitPane因爲我們需要它來分配的可用空間。

這是一個小例子,在SplitPane中有兩個TableView s左右對齊。現在,我將左側TableView的最小尺寸限制爲Stage的當前寬度的20%,將右側的尺寸限定爲70%。

TableView<?> table1 = createTable(); 
TableView<?> table2 = createTable(); 
table1.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.2)); 
table2.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.7)); 

SplitPane split = new SplitPane(table1,table2); 

您可以輕鬆地將最小大小修改爲常量值或將它們綁定到不同的父容器大小。