JavaFX 节点的边界在最大化时未更新



我正在开发一个JavaFX控件,它在其子组件之间画线。当有空间时,这些子组件就会增长。为了在它们之间画线,我经常使用Node.getBoundsInParent((,每当控件的大小发生变化时都会调用它。当我调整窗口大小时,这一切都很好。

当我最大化窗口时,组件会按预期增长和布局。由于控件大小发生了变化,因此会再次读取边界,但它们仍处于最大化窗口之前的状态。当我停止最大化窗口时,调用getBoundsInParent((的大小更改将返回组件的最大大小。

我试图显式地监听Window最大化事件,并在控件上调用requestLayout((,但效果仍然相同。

我错过了什么?

在触发重绘时,我必须将重绘放在Platform.runLater((调用中,这似乎有所帮助。这也适用于调整大小和最大化。

最新更新