我正在尝试创建一个3乘4的jpanels网格。2乘4在gridLayout中是可行的,但我不能在底部添加青色的jpanel。这就是我使用GridBagLayout时得到的结果
波纹管是我的网格袋限制,我不知道为什么,但面板4-8是不可见的
///////////Build Top Panels///////////
buildPanel();
gc.weightx = 0.5;
gc.gridx = 0;
gc.gridy = 0;
this.add(p1,gc); // panel1
buildPanel2();
gc.gridx = 1;
gc.gridy = 0;
this.add(p2,gc); //panel2
buildPanel3();
gc.gridx = 2;
gc.gridy = 0;
this.add(p3,gc);//panel3
buildPanel4();
gc.gridx = 3;
gc.gridy = 0;
this.add(p4,gc);//panel4
buildBottomPanel();
gc.gridx = 0;
gc.gridy = 2;
this.add(b1,gc);//panel5
buildBottomPanel2();
gc.gridx = 1;
gc.gridy = 2;
this.add(b2,gc);//panel6
buildBottomPanel3();
gc.gridx = 2;
gc.gridy = 2;
this.add(b3,gc);//panel7
buildBottomPanel4();
gc.gridx = 3;
gc.gridy = 2;
this.add(b4,gc);//panel8
buildFooter();
gc.gridx = 0;
gc.gridy = 2;
gc.gridwidth = 4;
gc.fill = GridBagConstraints.HORIZONTAL;
this.add(footer,gc);//panel9
buildBottomPanel()到buildBottomPanel 4()放置在(0,2)到(3,2)
gc.gridx = 0;
gc.gridy = 2;
this.add(b1,gc);//panel5
gc.gridx = 3;
gc.gridy = 2;
this.add(b4,gc);//panel8
然后你的页脚被放在它们上面:
buildFooter();
gc.gridx = 0;
gc.gridy = 2;
gc.gridwidth = 4;
gc.fill = GridBagConstraints.HORIZONTAL;
this.add(footer,gc);//panel9
底部面板使用gc.gridy = 1
。