5

向东布局添加 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 );
        }
    }
4

3 回答 3

14

我不知道,您希望您的 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);
}
于 2012-07-26T17:53:05.353 回答
7

BorderLayout每个部分只允许一个组件。如果您想保留BorderLayout,但有 2 个以上的按钮,我建议首先将每个按钮放入 a 中JPanel,然后将其JPanel放入东部插槽中。

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

查看不同的LayoutManagers,并尝试找出适合您的。

于 2012-07-26T16:21:25.410 回答
4

1. JFrame的默认布局是BorderLayout,它有 East 、 West 、 North 、 South 和 Center 区域,如果没有提到定位,则默认为 Center 。

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

3.使用由 NetBeans 团队在 2005 年开发的Windows Builder Pro,现在可以从 google 中免费使用,您会以更好的方式完成这项工作。 Group Layout

4.但是如果你还是想用 BorderLayout 的话,我建议你使用JPanel上的content paneJFrame想要的方式添加按钮......

于 2012-07-26T17:40:07.170 回答