У меня есть внешняя 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);
}
}