2017-10-08 47 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

好吧,謝謝你,我會檢查出來:) –