为什么不添加Panel,ByeBut就会覆盖了HelloButt:
import java.awt.*;
class Butt extends Frame
{
Butt()
{
Button HelloBut=new Button("Hello");
Button ByeBut=new Button("Bye");
padd(HelloBut);
padd(ByeBut);
setSize(300,300);
setVisible(true);
}
public static void main(String argv[])
{
Butt MyBut=new Butt();
}
}
而添加了Panel后,就会两个都显示呢:
import java.awt.*;
class Butt extends Frame
{
Butt()
{
Panel p=new Panel();
Button HelloBut=new Button("Hello");
Button ByeBut=new Button("Bye");
p.add(HelloBut);
p.add(ByeBut);
this.add(p);
setSize(300,300);
setVisible(true);
}
public static void main(String argv[])
{
Butt MyBut=new Butt();
}
}
为何?(大家见笑)
----------------解决方案--------------------------------------------------------
因为 Frame 默认为 boderlayout Panel是 flowlayout
当你用frame 添加组件的时候 默认加在了中间 所以第二个就被第一个覆盖住了
import java.awt.*;
class Butt extends Frame
{
Butt()
{
this.setLayout(new FlowLayout());//加上这句话就可以
Button HelloBut=new Button("Hello");
Button ByeBut=new Button("Bye");
add(HelloBut);//这里add
add(ByeBut);
setSize(300,300);
setVisible(true);
}
public static void main(String argv[])
{
Butt MyBut=new Butt();
}
}
----------------解决方案--------------------------------------------------------