2017-10-08 112 views
0

Design做的JPanel,以填补在GridBagLayout的整个空间中的Java

请参考上面的图片,我的内容面板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窗体不会填满整个内容面板中,我也试着将布局更改为边界布局,我将填充整个内容面板结果,但在按钮单击时显示JPanel表单时会出现问题,JPanel表单将不会使用边框布局显示。

+0

基于'btn1Performed'操作,我建议你看看'CardLayout' – MadProgrammer

回答

1

做的JPanel,以填补在GridBagLayout的整个空间中的Java

你想看看GridBagConstraints#weightxGridBagConstraints#weightxyGridBagConstraints#fill性能。

查看How to Use GridBagLayout了解更多详情。

基于对btn1Performed的操作,我不过建议你看看How to use CardLayout

+0

好吧,谢谢你,我会检查出来:) –