请参阅上图,我的内容面板JPanel表格将根据导航栏面板上的哪个按钮进行更改。在我的内容面板中有一个桌面窗格。这是我的一个按钮的代码:
Panel1 = p1;
Panel2 = p2;
Panel3 = p3;
Panel4 = p4;
Panel5 = p5;
public MainFrame() {
initComponents();
GridBagLayout gbLayout = new GridBagLayout();
p1 = new Panel1();
p2 = new Panel2();
p3 = new Panel3();
p4 = new Panel4();
p5 = new Panel5();
desktop.setLayout(gbLayout);
desktop.add(p1);
desktop.add(p2);
desktop.add(p3);
desktop.add(p4);
desktop.add(p5);
}
private void btn1Performed(java.awt.event.ActionEvent evt) {
pnl1.setVisible(true);
pnl2.setVisible(false);
pnl3.setVisible(false);
pnl4.setVisible(false);
pnl5.setVisible(false);
}
我还发现我只能使用GridBagLayout来获得这个结果,但是我的JPanel Form不会填满整个内容面板,我也尝试将布局更改为Border Layout,我将填充整个内容面板结果,但在按钮单击显示JPanel表格时会出现问题,JPanel表格将不会显示使用边框布局。
答案 0 :(得分:1)
让JPanel在Java中填充GridBagLayout中的整个空间
您想查看GridBagConstraints#weightx
,GridBagConstraints#weightxy
和GridBagConstraints#fill
属性。
有关详细信息,请查看How to Use GridBagLayout。
根据btn1Performed
中的操作,我建议您查看How to use CardLayout