让JPanel在Java中填充GridBagLayout中的整个空间

时间:2017-10-08 05:40:00

标签: java jpanel netbeans-8 gridbaglayout

Design

请参阅上图,我的内容面板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表格将不会显示使用边框布局。

1 个答案:

答案 0 :(得分:1)

  

让JPanel在Java中填充GridBagLayout中的整个空间

您想查看GridBagConstraints#weightxGridBagConstraints#weightxyGridBagConstraints#fill属性。

有关详细信息,请查看How to Use GridBagLayout

根据btn1Performed中的操作,我建议您查看How to use CardLayout