流式布局(FlowLayout)
1.构造方法可指定对齐方式、水平垂直间距
2.特点:从左到右的顺序排列,默认居中。
例如:
public class JFrame1 extends JFrame{
public static void main(String[] args) {
new JFrame1();
}
public JFrame1(){
//设置窗口可见
setVisible(true);
//设置点击关闭窗口的时候,退出程序
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置窗口的大小
setSize(10, 520);
setSize(new Dimension(10, 520));
//设置窗口的背景颜色
// setBackground(Color.RED); //颜色显示不出来是因为,被布局管理器挡住了
Container c = getContentPane(); //返回此窗体的 ContentPane 对象
c.setBackground(Color.RED); // 设置组件的背景色。
//创建布局管理器,设置布局
FlowLayout f = new FlowLayout();
setLayout(f);
//创建按钮对象
JButton j = new JButton("登陆");
JButton j1 = new JButton("退出");
JTextField jt = new JTextField(10);
//把按钮添加到窗体上
add(j);
add(j1);
add(jt);
}
}
边界布局(BorderLayout)
特点:按照东南西北中的顺序排列, Frame默认的布局管理器。
其中每个部分只可添加一个组件,若添加多个组件,则最后添加的组件会覆盖前面的。
例如:
public class JFrame2 extends JFrame{
public static void main(String[] args) {
new JFrame2();
}
public JFrame2(){
//设置点击关闭窗口的时候,退出程序
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置窗口的大小
this.setSize(10, 520);
this.setSize(new Dimension(10, 520));
//设置窗口的背景颜色
// setBackground(Color.RED); //颜色显示不出来是因为,被布局管理器挡住了
Container c = this.getContentPane(); //返回此窗体的 ContentPane 对象
c.setBackground(new Color(0xFDAD20)); // 设置组件的背景色。
//创建布局管理器(边界布局管理器)
BorderLayout f = new BorderLayout();
this.setLayout(f);//设置布局
//创建按钮对象
JButton j = new JButton("登陆");
JButton j1 = new JButton("退出");
JButton j2 = new JButton("QQ");
JButton j3 = new JButton("密码");
JTextField jt = new JTextField(1);
//添加到窗体
//BorderLayout是一个边框布局,它可以对容器组件进行,五个区域:北、南、东、西、中。每个区域最多只能包含一个组件
add(j,BorderLayout.NORTH);//北
add(j1,BorderLayout.SOUTH);//南
add(j2,BorderLayout.EAST);//东
add(j3,BorderLayout.WEST);//西
add(jt,BorderLayout.CENTER);//中 而且五个组件把背景颜色遮挡了
//设置窗口可见
this.setVisible(true);
}
}
表格布局(GridLayout)
构造方法可指定水平垂直间距
特点:规则的矩阵 ,系统自带的计算器用的就是这个布局。
例如:
public class JFrame3 extends JFrame {
public JFrame3(String title){
super(title);
//设置窗体可见
setVisible(true);
//设置大小
setSize(500, 500);
//设置点击关闭的时候退出程序
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置内容面板的背景颜色
Container c = getContentPane();
c.setBackground(new Color(52,10,99));
//设置布局
GridLayout gl=new GridLayout(2,3);//左边的参数表示一行,右边的参数表示一列
setLayout(gl);
//添加
for(int i=0;i<10;i++){//控制几个按钮,颜色也会被按钮遮挡住
JButton jb=new JButton("按钮"+i);
add(jb);
}
}
public static void main(String[] args) {
new JFrame3("窗体哦");
}
}
CardLayout(卡片布局管理器)
特点:选项卡
对于选项卡这个概念大家可能不会陌生,就是在一个窗口中可以切换显示多页不同的内容,但同一时间只能是其中的某一页可见的,这样的一个个的页面就是选项卡。
CardLayout就是类似的这样一个布局管理器,它能够让多个组件共享同一个显示空间,共享空间的组件之间的关系就像重叠在一起的一幅扑克牌,组件重叠在一起,初始时显示该空间中第一个组件,通过CardLayout类提供的方法可以切换该空间中显示的组件。
GridBagLayout(网格包布局管理器,又称坐标式布局(最牛逼最灵活的布局方式。)
特点:非规则的矩阵,是GridLayout的变种,一个组件可以存放在多个格子之中,通过坐标确定组件位置。
窗体类:JFrame,
按钮类:JButton,
单行文本JTextField,
多行文本:JTextArea