没有显示所有按钮

时间:2012-03-18 10:55:27

标签: java swing layout

我有一个带按钮的数组:

JButton[] commandButtons = {
    new JButton("Add Chair"),
    new JButton("Add Table"),
    new JButton("Add Desk"),
    new JButton("Clear All"),
    new JButton("Total Price"),
    new JButton("Save"),
    new JButton("Load"),
    new JButton("Summary")
        };

我想将它们全部放在面板中,但它只显示最后一个按钮。 所以,如果有人知道如何解决它或有一个建议,那将是伟大的。

另外,我不知道如何将for循环作为每个循环。

for(int i=0; i<commandButtons.length; i++)      
    {
    westPanel.add(commandButtons[i]);
        commandButtons[i].addActionListener(this);
    }

3 个答案:

答案 0 :(得分:1)

在westPanel JPanel上设置一个FlowLayout管理器,它们都会显示出来。

答案 1 :(得分:1)

我相信您没有设置布局,因此默认设置为BorderLayout。在不告知参数(放置元素的位置)的情况下向此布局添加元素时,默认情况下会将其添加到中心。但是中心只能有一个元素,所以你只能看到最后一个按钮。

快速修复是定义流程布局:

pannel.setLayout(new FlowLayout());

在添加按钮之前执行此操作。现在您将看到所有按钮。如果你没看到放大窗口。

现在,如果布局不是您真正想要的,请阅读布局并确定您需要哪一个(或它们的组合)。

答案 2 :(得分:1)

是的,这取决于布局管理器。如果你不想要布局管理器,你必须自己设置位置和大小,否则它们都将是0,0。

setLayout(null); //gives no layout manager

总是尝试使用布局管理器。