我有一个 2 行和 2 列的网格窗格。用户应该能够动态地更改 UI 上的列宽(最好将鼠标放在分隔符上)。但我还没有找到一种方法来做到这一点。
这可以使用网格窗格来完成,还是我必须使用可调整大小的网格窗格或其他容器中的拆分窗格,例如每个窗格中的嵌套 vbox?
在此先感谢,托马斯
我认为对于一个二乘二的网格,最简单的解决方案是使用三个嵌套的拆分窗格。一个主要的垂直的,然后再次被两个次要的水平细分(反之亦然)。您只需要小心同步两个次要的,以便它们平行移动。
为了完整起见,这是我最后所做的:
我有一个 2x2 网格窗格,调整大小的分隔线应该只在下一行可见。因此,我在跨越两列的网格窗格第二行中添加了一个带有两个区域的拆分窗格。我将内部控件从网格窗格移到了拆分窗格上。
现在我只需要通过
mySplitPane.getDividers().get(0).positionProperty().addListener((observable, oldValue, newValue)
此外,需要另一个侦听器来修复JavaFX - SplitPane、调整大小和比例问题。这个在调整网格窗格大小后设置分隔符位置:
myGridPane.widthProperty().addListener((observable, oldValue, newValue)