我有一个外部JPanel,其中包含内部面板的列表。我的布局是GridLayout
在某些情况下,我想看不见我的一些内部面板。问题是,在我对一些内部面板执行setVisible(false)后,它们确实消失了,但它们之前占用的空间仍然存在,并且不会被抹去,因此它会创建空白。
如何删除这些空格,并使所有可见的内部面板一个接一个地排序,而它们之间没有任何空格?
outerPanel.setLayout(new GridLayout(4, 1));
outerPanel.add(pnl1);
outerPanel.add(pnl2);
outerPanel.add(pnl3);
outerPanel.add(pnl4);
private void invisibleSome(){
Component[] cmpts = outerPanel.getComponents();
for(int i = 0; i< cmpts.length; i++){
//this make some components invisible
//but their white space still remains
cmpts[i].setVisible(i%2 == 0);
}
}
https://stackoverflow.com/questions/56414955
复制相似问题