向东方布局添加2个以上按钮时,只显示1个

时间:2012-07-26 16:20:09

标签: java swing layout layout-manager

在东部布局中添加2个以上按钮时,只显示1个。我正在尝试测试使用选项卡式窗格的布局。出于某种原因,当我尝试向东部地区添加多个按钮时,它只显示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 );
        }
    }

3 个答案:

答案 0 :(得分:13)

我不知道,你希望你的UI看起来如何,但是这样试试:

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);
}

答案 1 :(得分:6)

BorderLayout每个部分只允许一个组件。如果你想保留BorderLayout,但有2个以上的按钮,我建议先将每个按钮放入JPanel,然后将JPanel放入东方广告位。

但是,可能有更好的布局选择。您还提到了标签,其中已有JTabbedPane

查看不同的LayoutManagers,并尝试确定哪一个适合您。

答案 2 :(得分:4)

1。 默认布局为BorderLayout,它有东,西,北,南和中心区域,其中有哪个中心如果未提及定位,则为默认值。

2。现在每个部分/区域只能容纳一个小部件(即摆动组件)。

3。您将使用 Group Layout更好地完成此,这是由NetBeans团队在2005年开发的,使用 Windows Builder Pro,现在免于谷歌。

4. 如果您仍想使用BorderLayout ,我建议您在JPanel使用content pane JFrame以您想要的方式添加按钮......