问:JavaFX8动态调整gridpane列的大小

时间:2016-03-17 18:21:45

标签: javafx resize gridpane

我有一个有2行2列的网格窗格。用户应该能够动态更改UI上的列宽(最好用分隔符上的鼠标)。但我还没有办法做到这一点。

可以使用网格窗格完成此操作,还是必须使用Resizeable Gridpane or other container中的分割窗格,例如每个窗格中嵌套的vbox?

先谢谢,托马斯

2 个答案:

答案 0 :(得分:1)

我认为对于只有两个两个网格,最简单的解决方案是使用三个嵌套的Split窗格。一个主要的垂直方向,然后再由两个较小的水平方向细分(或反之亦然)。您只需要小心地同步两个次要的,以便它们并行移动。

答案 1 :(得分:0)

为了完整起见,这是我最后所做的:

我有一个2x2网格窗格,调整大小分隔符只能在下排显示。所以我将一个带有两个区域的splitpane添加到跨越两列的gridpanes第二行。我将内部控件从gridpane移动到splitpane上。

现在我只需要通过

将splitpane分隔线的移动与gridpane同步

mySplitPane.getDividers().get(0).positionProperty().addListener((observable, oldValue, newValue)

此外,需要另一位听众来修复JavaFX - SplitPane, resize & proportions问题。这个在调整gridpane大小后设置分隔符位置:

myGridPane.widthProperty().addListener((observable, oldValue, newValue)