javafx 2网格窗格行在使用percentHeight时重叠

Posted

技术标签:

【中文标题】javafx 2网格窗格行在使用percentHeight时重叠【英文标题】:javafx 2 gridpane rows overlap when using percentHeight 【发布时间】:2012-05-26 15:15:09 【问题描述】:

我正在尝试在 JavaFX 中布局我的屏幕,但在使用 GridPane 时遇到了问题。 我有 2 行 - 其中之一的 percentHeight 设置为 80,另一行设置为 20 但我看到的是一排与另一排重叠

这里有一个小插图(如果你可以这样称呼它:)),希望能说明我的意思(数字表示行号,'*' 表示重叠)

1   label1     <--- belongs to row 1
1   list1
1   |
1   | 
1   |
12  |  *  label2   <---  belongs to row 2
12  |  *  list2
 2        |
 2        |

有人遇到过这个问题吗?我是不是做错了什么?

【问题讨论】:

我以前没见过这个。你能发布一个简短的可执行示例吗? @jewelsea - 我在尝试创建一个简短的可执行示例以按照您的建议发布时发现出了什么问题......谢谢:) 【参考方案1】:

只要找出问题所在 - 在我的布局中,我使用了嵌套的网格窗格,它们的内容是自动生成的,没有添加行约束..

当它发现如果没有将行约束添加到网格窗格中,则使用默认值,这些默认值具有最小大小, 这导致它们自己的网格窗格具有“未声明的”/隐式最小尺寸,这就是为什么我添加的约束(80:20%)被忽略 - 因为不同网格的隐式最小尺寸并没有为重新留下太多空间- 调整大小,最后 - 因为在计算了网格的最小尺寸后,页面中没有足够的空间来显示它们 - 它们重叠。

令人失望的是 - 我使用了 showGridLines 并且显示的行没有反映最小行大小。

在我手动添加最小大小为 0 的行约束后,问题得到解决。

【讨论】:

很好的解释 benyl。你能把问题标记为已回答吗?

以上是关于javafx 2网格窗格行在使用percentHeight时重叠的主要内容,如果未能解决你的问题,请参考以下文章

JavaFX 在网格窗格中显示多个图像

如何在javafx中用鼠标绘制选定的网格窗格范围

JavaFX 标签高度

如何在 JavaFX 中交换两个 GridPane 节点?

Javafx:GridPane:当文本太长时防止列增加宽度

如何使用 JavaFX 垂直堆叠下载窗格?