import java.awt.*;
public class NullLayout{
    public static void main(String args[]){
        Frame f=new Frame("我是李鹏飞");
        f.setLayout(null);
        Button b1=new Button("李");
        Button b2=new Button("鹏");
        Button b3=new Button("飞");
        b1.setSize(50,50);
        b1.setLocation(50,50);
        b2.setSize(50,50);
        b2.setLocation(100,100);
        b3.setSize(50,50);
        b3.setLocation(150,150);
        f.add(b1);
        f.add(b2);
        f.add(b3);
        f.setSize(200,200);
        f.setVisible(true);
    }
}
import java.awt.*;
public class NullLayout{
    public static void main(String args[]){
        Frame f=new Frame("我是李鹏飞");        
        Button b1=new Button("李");
        Button b2=new Button("鹏");
        Button b3=new Button("飞");
        b1.setSize(50,50);
        b1.setLocation(50,50);
        b2.setSize(50,50);
        b2.setLocation(100,100);
        b3.setSize(50,50);
        b3.setLocation(150,150);
        f.add(b1);
        f.add(b2);
        f.add(b3);
        f.setSize(200,200);
        f.setVisible(true);
    }
}
这两个程序的差别在于:第二个程序中没有了f.setLayout(null);
但是运行结果却相差很大,请问哪位大虾能够给我这个菜鸟解释一下吗?谢谢!

解决方案 »

  1.   

    f.setLayout(null);虽然值为null,但对布局还是有点影响的
      

  2.   

    Frame 默认使用 BorderLayout。setLayout(null) 是不使用布局管理器。
      

  3.   

    大哥啊,你复制粘贴运行一下不是就可以出来了吗?我想上传图片,但是上传不成啊,请问怎么往CSDN上面上传图片呢?
      

  4.   

    你研究下布局管理就知道为什么产生那样的影响了,其实2楼已经给了思路,给你解释了你也不会布局,这样对lz没帮助,还是lz自己研究布局为好;公司网吧电脑没装eclipse,无法运行程序;lz可以把图片上传到csdn空间,在插入图片地址就可以了;
      

  5.   


    这是那两个程序运行之后的结果
    http://hi.csdn.net/space-10187537-do-album-picid-960511.html
      

  6.   

    这种差别是布局管理器导致的
    第一个没用布局管理器,所以你设置它多大它就多大,你把它放哪它就在哪
    第二个使用了默认的布局管理器,borderlayout,所以飞被那么安排了(放到了borderlayout的center位置)
    楼主去研究一下borderlayout布局就知道了
      

  7.   

    想要相关语言的所有资料吗?那就快来吧。
    我的压缩包里面不止一两样东西哦,那可是我学习和工作的所有资料,不管是学习还是工作都会需要。
    http://download.csdn.net/user/yangtonghai