我试图让组件调整大小以保持其起始比例,具体取决于窗口的大小。
使用AnchorPane我可以将约束设置为像素,问题是调整窗口大小以使其更大会使所有元素拉伸以保持约束中定义的完全相同的像素数量。
我希望能够做的是用百分比或其他方式定义它们,以保持窗口大小之间的宽高比和位置一致。
到目前为止,我已经看到了两种可能的解决方案:
即时计算约束
按照此问题中的建议计算每个resize事件的约束: AnchorPane Constraints in percentages,但这意味着每次像素更改时都可能会调用一段代码。
嵌套窗格并使用行/列包围元素
另一种方法是嵌套窗格和组件,例如:
Root> AnchorPane> GridPane> AnchorPane>成分
现在将它放在你想要的位置,在你的组件上方添加一行,在你的组件之前添加一行,在你的组件之前添加一行(围绕它)并设置它们的调整大小百分比。
这适用于"泄漏" AnchorPane对Component的大小调整行为,以及行/列的宽度/高度权重。
我的问题是:有更好的方法吗?
虽然两者都可行,但它们似乎都不对。一个是每个像素更改一次调用代码,另一个是添加(很多)未使用的元素。