2012-07-26 65 views
5

向東佈局添加2+按鈕時,只顯示1。我試圖測試使用選項卡式窗格的佈局。由於某些原因,當我嘗試向東部地區添加多個按鈕時,它只顯示1個按鈕。只是顯示的按鈕是添加到東部地區的最後一個按鈕,其餘部分將被忽略。我想也許他們只是隱藏在最後一個按鈕下面。當向東佈局添加2+按鈕時,只有1顯示

public void createPage1() 
    { 
     { 
      panel1 = new JPanel(); 
      panel1.setLayout(new BorderLayout()); 

      panel1.add(new JButton("North"), BorderLayout.EAST); 
      panel1.add(new JButton("South"), BorderLayout.EAST); 
      panel1.add(new JButton("East"), BorderLayout.EAST); 
      panel1.add(new JButton("West"), BorderLayout.EAST); 
      panel1.add(new JButton("Center"), BorderLayout.EAST); 
     } 
    } 
+0

你明白了你將所有以EAST好嗎? – 2012-07-26 16:21:23

+0

另請參閱[嵌套佈局示例](http://stackoverflow.com/questions/5621338/how-to-add-jtable-in-jpanel/5630271#5630271),瞭解如何嵌套佈局,您將如果你想在EAST中添加多個按鈕,需要使用 – Robin 2012-07-26 16:25:31

回答

11

我不知道,你希望你的用戶界面看起來像,但嘗試這樣說:

public void createPage1() { 
    //This will be the main panel. 
    //We are going to put several buttons only in the "EAST" part of it. 

    panel1 = new JPanel(); 
    panel1.setLayout(new BorderLayout()); 

    //We create a sub-panel. Notice, that we don't use any layout-manager, 
    //Because we want it to use the default FlowLayout 
    JPanel subPanel = new JPanel(); 

    subPanel.add(new JButton("1")); 
    subPanel.add(new JButton("2")); 
    subPanel.add(new JButton("3")); 

    //Now we simply add it to your main panel. 
    panel1.add(subPanel, BorderLayout.EAST); 
} 
+0

我想我看到你在那裏做了什麼! Recursed也提到了這一點。謝謝! – jerhynsoen 2012-07-26 22:04:12

6

BorderLayout每個部分只允許一個組件。如果你想保留BorderLayout,但有2個按鈕,我建議先將這些按鈕中的每一個放入JPanel,然後將該JPanel放入東部插槽。

但是,您可能有更好的佈局選擇。您還提到了標籤,其中已有JTabbedPane

看看不同的LayoutManagers,並試圖找出哪一個適合你。

4

爲JFrame的的默認佈局BorderLayout,它有東,西,北,南,和中心區,外面中心是默認的,如果沒有提到的定位。

2.現在每個部分/區域只能容納一個部件(即擺動部件)。

我們將看到這樣以更好的方式使用Group Layout,這是由NetBeans團隊在2005年開發完成後,使用的Windows生成器專業版,現在從谷歌免費的。

4.如果你還想去與BorderLayout的,我會建議你在你想要的方式在JFrame添加按鈕的content pane使用JPanel ......