JFrame 缺省布局使用的是边界布局管理器(BorderLayout).
JPanel 缺省布局使用的是流式布局管理器(FlowLayout).
边界布局管理器(BorderLayout)是将容器控件划分为上北(NORTH)、下南(SOUTH)、左西(WEST)、右东(EAST)、中间(CENTER)五个位置,使用此局布的时候可以将控件分别放置在这五个位置上进行显示.
流式布局管理器(FlowLayout)是按控件的放入顺序进行从左到右的排列,一行满了再自动换到下一行继续进行排列.
java中JFrame的缺省布局管理器是FlowLayout
Jpanel默认也是FlowLayout,看构造方法代码就知道了
public JPanel(boolean isDoubleBuffered) {
this(new FlowLayout(), isDoubleBuffered);
}
JFrame的缺省布局管理器是BorderLayout
JPanel的缺省布局管理器是FlowLayout
自己试试就知道了
代码如下:
import javax.swing.JFrame;
import javax.swing.JPanel;
public class LayoutTest {
public static void main(String[] args) {
System.out.println(new JFrame().getLayout());
System.out.println(new JPanel().getLayout());
}
}
结果:
java.awt.BorderLayout[hgap=0,vgap=0]
java.awt.FlowLayout[hgap=5,vgap=5,align=center]
即
JFrame默认是BorderLayout
JPanel默认是FlowLayout
FlowLayout,两个都是