Problema com GridBagLayout

Eae galera, blz? Estou com um pequeno problema com o gridBagLayout: no meu frame há: um JMenuBar em cima (não é ajustado com o gridBagLayout), um JInternalFrame (em gridx e gridy = 0) e um JTable (gridx =0, gridy = 1) e uma barra de progresso (JProgressBar) (gridx=0, gridy=2). O Problema é que quando eu faço um “setVisible(false);” no InternalFrame, a tabela e a barra de progresso sobem de lugar. Esses dois componentes não chegam a fica juntos, e a tabela não fica no topo. Se eu faço um “setVisible(true);” pro internal frame depois que a tela bagunçou, os componentes voltam ao lugar certo. Alguém sabe o por quê disso ou como eu faço pra resolver?