使用GridLayout强制JPanel更新/调整大小

时间:2014-07-19 10:21:49

标签: java swing layout-manager grid-layout

我有一个带有BorderLayout的框架。在BorderLayout的中心,有一个带有GridLayout的JPanel。有时我必须将这个内部JPanel的GridLayout从9x9更改为4x4(或16x16)。但不幸的是,细胞的大小保持不变。手动调整框架大小后,布局会调整大小,然后再次显示正确的大小。以下是更改为4x4后和调整大小后的样子:

after changing from 9x9 to 4x4

after resizing the frame

如何强制内部面板自动更新?我尝试在内部面板(具有GridLayout的那个)和框架上重绘()。目前我使用的代码有一些令人讨厌的副作用:

Dimension size = frame.getSize();
frame.setSize(new Dimension(size.height, size.width+1));
frame.setSize(size);

还有其他方法可以达到这个目的吗?提前谢谢!

1 个答案:

答案 0 :(得分:2)

  

手动调整框架大小后,布局会调整尺寸并再次看起来正确