当前位置: 技术问答>java相关
[scjp问题] 关于组件显示问题
来源: 互联网 发布时间:2015-03-14
本文导语: 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(); } } ???????为什么只是显示标...
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个按钮
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个按钮
|
这是一个关于布局管理器的问题
1)第一个程序使用Frame容器,它的默认布局管理器是BorderLayout,把容器界面分成东西南北中5个区域,默认的区域是中,第一个程序这么写,等于把3个按钮都加载到了中区,因此a和b被c覆盖了,只能看见一个c
2)第二个程序使用Panel容器,它的默认布局管理器是FlowLayout,把即从左到右,从上到下,自然顺序排列组件.因此你可以看见abc三个按钮从左到右顺序排列
关于布局管理器的知识,请多多看书吧
1)第一个程序使用Frame容器,它的默认布局管理器是BorderLayout,把容器界面分成东西南北中5个区域,默认的区域是中,第一个程序这么写,等于把3个按钮都加载到了中区,因此a和b被c覆盖了,只能看见一个c
2)第二个程序使用Panel容器,它的默认布局管理器是FlowLayout,把即从左到右,从上到下,自然顺序排列组件.因此你可以看见abc三个按钮从左到右顺序排列
关于布局管理器的知识,请多多看书吧