我有一个带按钮的数组:
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);
}
答案 0 :(得分:1)
在westPanel JPanel上设置一个FlowLayout管理器,它们都会显示出来。
答案 1 :(得分:1)
我相信您没有设置布局,因此默认设置为BorderLayout
。在不告知参数(放置元素的位置)的情况下向此布局添加元素时,默认情况下会将其添加到中心。但是中心只能有一个元素,所以你只能看到最后一个按钮。
快速修复是定义流程布局:
pannel.setLayout(new FlowLayout());
在添加按钮之前执行此操作。现在您将看到所有按钮。如果你没看到放大窗口。
现在,如果布局不是您真正想要的,请阅读布局并确定您需要哪一个(或它们的组合)。
答案 2 :(得分:1)
是的,这取决于布局管理器。如果你不想要布局管理器,你必须自己设置位置和大小,否则它们都将是0,0。
setLayout(null); //gives no layout manager
总是尝试使用布局管理器。