不允许添加组件调整JPanel的大小

时间:2016-02-12 10:07:48

标签: java swing layout-manager

我有一个使用GridBagLayout布局的父JPanel parentPanel 。在这些面板中,我有另外3个孩子JPanels("childPanel1", "childPanel2", "childPanel3"),如下所示:

 _____ _____
|     | 2   |
|  1  |_____|
|     | 3   |
|_____|_____|

我使用BorderLayout.CENTER在一个固定大小的JFrame中添加了panelParent,我希望框架保持固定(不可调整大小),600 x 400。 子面板的宽度都相等,我希望它们保持相等。
对于子面板,我也使用了GridBagLayout 我在childPanel1中安排了组件,所有宽度仍然相等。

问题:当我开始向childPanel2添加组件时,它会调整自身和其他2个childPanel的大小。 子面板宽度不再相等。它变成这样:

 ____ ______
|    |  2   |
|  1 |______|
|    |  3   |
|____|______|

我有两个问题,

  1. 添加后,如何保持子面板不可调整大小 组件进入它们,都具有相同的宽度?
  2. 面板的自动调整大小与JPanel(父级)有关 布局,子布局或组件属性?
  3. 我刚刚开始了解Swing。

    谢谢!

1 个答案:

答案 0 :(得分:2)

最简单(但可能不是最好)的方法可能只是覆盖每个孩子getPreferredSize的{​​{1}}方法:

enter image description here

<强>代码:

JPanel