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上?:)另外,我在问题中给出的示例非常简单,但是如果胶水和按钮只是部分重叠,会怎么样?如果有多个列以不同程度重叠会怎么样?
    但是如果胶水和按钮只是部分重叠会怎么样?
    -如果是这样,它会变得更加复杂。我总是建议使用具有适当布局管理器的嵌套面板,而不是尝试使用单个布局管理器强制布局。