如果节点超出 javafx 的边界,是不是可以自动调整窗格大小

Posted

技术标签:

【中文标题】如果节点超出 javafx 的边界,是不是可以自动调整窗格大小【英文标题】:Is it possible to auto-resize a pane if a node it outside its boundaries in javafx如果节点超出 javafx 的边界,是否可以自动调整窗格大小 【发布时间】:2015-06-04 04:24:36 【问题描述】:

我想知道是否可以在添加位于窗格边界之外的节点后自动调整窗格大小,以便所有窗格子项在舞台上可见。例如,具有负 x 坐标的节点,例如 x = -100,y = 200。我已经尝试研究如何做到这一点,但一切都在脉络中。谢谢。

【问题讨论】:

您想调整框架大小使x=-100 变为x=0? (这会将框架向左移动 100 像素,然后在框架的宽度上增加 100 以使其右侧保持在原位)这是一件很奇怪的事情。介意详细说明你为什么想做这样的事情吗? 我想这样做的原因是因为我需要能够在窗格中显示整个形状/多边形,而不管其坐标如何。基本上,只要添加了可见区域之外的节点,窗格就会自动调整大小。 【参考方案1】:

遍历所有孩子并计算总数 bounds in parent,重新定位孩子,使顶部/左侧位置为 0/0,根据总边界和视图计算比例因子,然后应用 setScaleX 和setScaleY.

【讨论】:

以上是关于如果节点超出 javafx 的边界,是不是可以自动调整窗格大小的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SpriteKit 检测节点是不是离开屏幕 [重复]

android 自定义View中滑动操作防止超出边界的简便方法

JavaFX - 垂直居中TextFlow中的文本

如果溢出,调整 JavaFX 标签大小

JavaFX 样式所有相同类型的节点,例如,VBox

JavaFX:按行和列获取节点