2012-02-20 87 views
0

我试图在一个框架上创建多个标签。我见过的每一个例子做究竟如何我已经做到了......JLabel只显示最后的标签

JLabel label1 = new JLabel("Label 1"); 
JLabel label2 = new JLabel("Label 2"); 
//... goes on through label5 

frame.add(label1); 
frame.add(label2); 
//... etc through label 5. 

只有标签5是被显示。如果我注释掉5,则只显示标签4。它只显示任何最后的标签。

+0

您正在使用的getContentPane()方法? – 2012-02-20 17:58:21

+0

显然这是因为我没有使用布局管理器。设置一个frame.setLayout(新的FlowLayout();虽然它还不是很漂亮,但它可以获取屏幕上的所有内容,并让我进入下一步。 – kaylendarr 2012-02-20 18:00:44

回答

1

这取决于您设置了哪个LayoutManager。可能你离开了默认的BorderLayout,因此所有这些都被添加到中心并被拉伸到窗口大小。所以最后添加的 - 当然 - 涵盖了所有以前添加的标签。尝试使用FlowLayout或别的东西:请参阅本A Visual Guide to Layout Managers

因此,假设您正在创建的JFrame孩子中的GUI元素,这是怎么布局管理器设置:

setLayout(new FlowLayout()); 
//... 
add(label1); 
add(label2); 
add(label3); 
//...