gpt4 book ai didi

java - GridBagLayout 权重对齐

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

我正在动态生成一个需要使用相对大小的布局,我发现不使用外部 Java 布局库的唯一方法是 GridBagLayout 的 weightx 和 weighty。

此时,除了一个小异常(exception),它一直在完全按照我的需要工作。当我有一列包含两个 JPanel 的空间分布分别为 66.6% 和 33.3%,然后另一列包含 3 个 JPanel,每个 JPanel 使用 33.3% 的空间时,第一列的 33.3% 与33.3%的第二。我需要它们完美对齐。

很遗憾,这是我的第一篇文章,我无法发布任何图片,希望我不会因为以下操作而遇到麻烦:

i.stack.imgur.com/avsuA.png

我想我知道问题出在哪里,在每个 JPanel 内部我都有一个 JLabel,因为 weightx 和 weighty 的定义是“权重用于确定如何在列 (weightx) 和行 (weighty) 之间分配空间)"我猜这两个 33.3%s 之间的区别在于第二列包含一个额外的 JLabel。

this thread StanislavL 说“容器要求 child 提供他们喜欢的大小”,所以,我想知道解决方案是否是覆盖 JLabel 的 getPreferredSize 方法。我不确定这样做会有多“肮脏”,非常感谢您提出解决此问题的建议。

提前致谢!

迭戈

最佳答案

I am wondering if the solution is to override JLabel's getPreferredSize method.

试试吧,除了我会重写面板的 getPreferredSize() 方法,因为它是面板大小会随着框架的增长/收缩而调整的。

I am not sure how "dirty" would be to do that

重写优于使用 setPreferredSize() 方法。

the only way I found to do it without using an external Java layout library

如果可以使代码更易于使用和理解,为什么不使用外部库? Relative Layout专为此目的而设计,因此您不必随意调整尺寸。

关于java - GridBagLayout 权重对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20709061/

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