制作按宽度占据其父容器固定百分比的 JPanel
的最简单方法是什么?
当父容器的宽度改变时,它的宽度应该更新。
我尝试使用 Box.createHorizontalStrut()
,但是当 JPanel
的父容器的宽度发生变化时,它不会更新。
最佳答案
你想要的是一个GridBagLayout . ( How to use? )
使用 GridbagLayout 可以定义 GridBagConstraints对于您添加的每个组件。
这些约束包括 weightx
这完全符合它在 jar 头上所说的。这是在该“网格行”中的所有组件计算的相对值,类似于分布部分。
请注意,当超过组件的首选大小时,weightx 才开始发挥作用。请注意,这可能会导致有趣的错误,在设置 minimumSize() 时,另请参阅 this SO answer.
无论如何:您可以通过指定其当前行中组件的百分比或任意倍数来获取 weightx 所需的值。
这意味着要让组件占用父容器可用宽度的 50%,请使用 weightx = 0.5
。确保该行的 weightx 值加起来为 1.0
关于java - 给 JPanel 一个基于百分比的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30611975/