当前位置: 代码迷 >> Java相关 >> 问一个awt的初级问题
  详细解决方案

问一个awt的初级问题

热度:241   发布时间:2006-05-06 07:21:00.0
问一个awt的初级问题

为什么不添加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();
}
}

为何?(大家见笑)

搜索更多相关的解决方案: awt  初级  

----------------解决方案--------------------------------------------------------

因为 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();
}
}


----------------解决方案--------------------------------------------------------
  相关解决方案