gpt4 book ai didi

JavaFX 强制 GridPane 中的所有单元格具有相同的大小

转载 作者:行者123 更新时间:2023-11-30 04:11:37 30 4
gpt4 key购买 nike

我正在构建一个 Reversi JavaFX 游戏(修改 Pro JavaFX 中的示例)。

每个单元格都是一个堆栈 Pane ,其中包含背景和代表该片段的椭圆 reversi background and piece

椭圆半径X绑定(bind)到半径Y(因此它是一个圆),半径Y绑定(bind)到父级宽度和高度的最小值:

 DoubleBinding parentWidth = Bindings.selectDouble(parentProperty(), "width");
DoubleBinding parentHeight = Bindings.selectDouble(parentProperty(), "height");
//the radius will be the min of the two
NumberBinding radius = Bindings.min(parentWidth,parentHeight).divide(2);

现在,如果我将很多这些放入 gridPane 中,我会得到一 block 板,全部大小相同! enter image description here

据我了解,网格 Pane 的每个单元格都会自动调整其大小以适应其内容。问题是,如果我最大化包含该板的窗口然后重新调整大小,我会得到以下板: enter image description here

有些行比其他行大:(我认为发生的事情是,当最大化时,网格 Pane 增加了每个单元格(堆栈 Pane )的大小。由于尺寸与椭圆半径相关,因此椭圆半径相应增加。但是当我缩小窗口时,网格 Pane 不会调整填充单元格的大小,可能是因为它试图适应现在大的椭圆形。

如何避免这种伪影?我知道我可以添加列约束对象,但是我是否必须为每一列和每一行添加一个约束对象?那是很多物体。还有其他办法吗?

最佳答案

事实证明答案相当简单。 gridpane 没有调整单元格的大小,因为单元格是 StackPane 并且 stackpane minHeight/minWidth 等于其组件,因此它会拒绝调整大小。使用 setMinSize(0,0) 效果很好

关于JavaFX 强制 GridPane 中的所有单元格具有相同的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19481962/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com