在SplitPane中更改窗格的增长率

时间:2014-12-27 20:18:50

标签: java javafx

有一个水平拆分窗格。如果窗格增长,则两个内部窗格将同等增长(如果拆分窗格增长100像素,则每个内部窗格增长50像素)。

是否可以调整此值以使第二个内部窗格比第一个内部窗格增长更多?就像第一个获得25%的增长,第二个获得75%。

1 个答案:

答案 0 :(得分:1)

SplitPane没有这方面的直接API,但间接地我们可以实现这一点。

API doc给了我们一个提示:

  

SplitPane中的分隔符具有以下行为:[...]

     
      
  • 当达到节点的最小尺寸时,向左/上移动的分隔符将停止。
  •   
  • 当达到节点的最大尺寸时,向右/底移动的分隔符将停止。   [...]
  •   

因此,通过设置最小大小,我们可以强制SplitPane根据需要分配可用空间。

这是一个小例子,TableView中有两个SplitPane左右对齐。现在,我将左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);

您可以轻松地将最小大小修改为常量值或将它们绑定到不同的父容器大小。