2012-07-26 37 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 ......