我有一个JPanel作为JScrollPane的视口,而JPanel有一个GridBagLayout。该程序的用户将能够向JPanel添加行,并且JPanel将相应地扩展。它可以全部扩展,但是当不需要扩展时,它不会按照我想要的顺序添加它们。我正在努力实现:

 ______
|XXXXXX|
|XXXXXX|
|      |
|      |
|      |
--------


但是相反,我得到了:

 ______
|XXXXXX|
|      |
|XXXXXX|
|      |
|      |
--------


然后:

 ______
|XXXXXX|
|      |
|XXXXXX|
|      |
|XXXXXX|
--------


一旦空间用完,它将展开并且JPanels正确对齐。

我尝试将weighty = 0.9设置为想要的效果,并且将anchor属性设置为NORTHWEST,但是得到了第二个结果。在GridBagLayout中是否可以达到预期的效果?

最佳答案

至少一个组件需要一个weighty=1,因此请在末尾添加一个weighty=1分隔项。所有其他组件应具有weighty=0。否则,GridBagLayout不知道如何分配剩余空间并将其平均分配给所有组件。

07-24 09:16