Java GridBag布局权重和重叠组件
假设我有一个Java GridBag布局权重和重叠组件,java,swing,layout,layout-manager,gridbaglayout,Java,Swing,Layout,Layout Manager,Gridbaglayout,假设我有一个JPanel和GridBagLayout如下: ----------------------------------------------- | | | | | | |Left JLabel 1 | Right JLabel 1| | | | | | | |-glue-|Left JLabel
JPanel
和GridBagLayout
如下:
-----------------------------------------------
| | | | |
| |Left JLabel 1 | Right JLabel 1| |
| | | | |
|-glue-|Left JLabel 2 | Right JLabel 2|-glue-|
| | | | |
| | Bottom JLabel | |
| | | | |
| vertical glue |
-----------------------------------------------
左/右标签分别跨1行和1列,而底部标签跨1行和2列。两侧的水平胶横跨3行和1列。底部的垂直胶跨1行4列
每个标签的权重为1.0
。此外,两侧的胶水也具有1.0
的weight
。垂直胶水的重量为1.5
。目前,当我在y
方向调整面板大小时,垂直胶水获得大约3/5的可用空间,整个上部获得大约2/5的可用空间
我的问题是,当胶水与按钮重叠时(从y
-resize透视图查看时),权重是如何工作的?如果没有胶水,按钮的总重量将是3.0
:这是一个完全不同的调整大小方案!权重实际是如何计算的(最高、平均、“从调整大小的角度看”?)和如何使用的?嗯,计算相当复杂,所以谁知道到底发生了什么
我猜你会得到这样的结果:
“垂直胶水”被视为一行数据,因此它得到1.5
“胶”组件考虑另一行数据,因此得到1。
然后在“粘合”组件中,您又有3行数据,它们每个都得到分配给“粘合”组件的.33空间
嗯,计算相当复杂,所以谁知道到底发生了什么
我猜你会得到这样的结果:
“垂直胶水”被视为一行数据,因此它得到1.5
“胶”组件考虑另一行数据,因此得到1。
然后在“粘合”组件中,您又有3行数据,它们每个都得到分配给“粘合”组件的.33空间
谢谢你回答我的问题,但是“谁知道到底发生了什么”:谁知道呢?是否有Java语言开发人员在SO上?:)另外,我在问题中给出的示例非常简单,但是如果胶水和按钮只是部分重叠,会怎么样?如果有多个列以不同程度重叠会怎么样?但是如果胶水和按钮只是部分重叠会怎么样?
-如果是这样,它会变得更加复杂。我总是建议使用具有适当布局管理器的嵌套面板,而不是试图使用单个布局管理器强制布局。感谢您回答我的问题,但是“谁确切知道发生了什么”:谁确实知道?是否有Java语言开发人员在SO上?:)另外,我在问题中给出的示例非常简单,但是如果胶水和按钮只是部分重叠,会怎么样?如果有多个列以不同程度重叠会怎么样?但是如果胶水和按钮只是部分重叠会怎么样?
-如果是这样,它会变得更加复杂。我总是建议使用具有适当布局管理器的嵌套面板,而不是尝试使用单个布局管理器强制布局。