[scjp问题] 关于组件显示问题

bookbobby 2002-01-07 03:23:36
import java.awt.*;

public class Test1 extends Frame
{
public Test1()
{
add(new Button("a"));
add(new Button("b"));
add(new Button("c"));
pack();
setVisible(true);
}
public static void main(String[] a){
new Test1();
}
}

???????为什么只是显示标签为"c"的按钮阿

import java.awt.*;

public class Test1 extends Frame
{
public Test1()
{
Panel p=new Panel();

p.add(new Button("a"));
p.add(new Button("b"));
p.add(new Button("c"));

add(p);
//pack();
setVisible(true);
}
public static void main(String[] a){
new Test1();
}
}

???????这样才可以显示3个按钮
...全文
47 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
bookbobby 2002-01-07
  • 打赏
  • 举报
回复
谢谢阿
Patrick_DK 2002-01-07
  • 打赏
  • 举报
回复
这是一个关于布局管理器的问题

1)第一个程序使用Frame容器,它的默认布局管理器是BorderLayout,把容器界面分成东西南北中5个区域,默认的区域是中,第一个程序这么写,等于把3个按钮都加载到了中区,因此a和b被c覆盖了,只能看见一个c

2)第二个程序使用Panel容器,它的默认布局管理器是FlowLayout,把即从左到右,从上到下,自然顺序排列组件.因此你可以看见abc三个按钮从左到右顺序排列


关于布局管理器的知识,请多多看书吧

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧