frame.getContentPane().add(b1,BorderLayout.NORTH);
frame.getContentPane().add(b2,BorderLayout.SOUTH);
frame.getContentPane().add(b3,BorderLayout.CENTER);
frame.getContentPane().setLayout(new BorderLayout());前三句,是把三个按钮加到一个JFrame上,用的是BorderLayout的布局方式,但是第四句一加上,整个界面的布局就乱了,连三个按钮都看不见了,我的问题是,前三行是对按钮在frame上的布局进行设定吗?那么第四行是对什么控件在哪个控件上的布局进行设定?谢谢。

解决方案 »

  1.   

    因为你把
    frame.getContentPane().setLayout(new BorderLayout());
    写到具体控件布局的后面了
    里面又重新注册了个布局管理器(匿名的,不是以前那个默认的)
    记住布局管理器也是对象呢
      

  2.   

    楼上说的差不多,
    你前三条语句,已经将你的组件按照Borderlayout方式部署了,
    而后你又新的在原来的基础上新生成了一个新的布局那么自然而然看不到原来的了
      

  3.   

    frame.getContentPane().setLayout(new BorderLayout());
    frame.getContentPane().add(b1,BorderLayout.NORTH);
    frame.getContentPane().add(b2,BorderLayout.SOUTH);
    frame.getContentPane().add(b3,BorderLayout.CENTER);
      

  4.   

    frame.getContentPane().add(b1,BorderLayout.NORTH);作用上就等于
    frame.getContentPane().setLayout(new BorderLayout());吗?怎么看起来第一句和第二句的作用不是等效的呀?