1、边界布局(BorderLayout),默认布局
this.add(an1,BorderLayout.EAST); //括号中的参数都是固定的,顺序不能改变
this.add(an2,BorderLayout.WEST); //前面是对象,后面是布局管理器
this.add(an3,BorderLayout.SOUTH);
this.add(an4,BorderLayout.NORTH);
this.add(an5,BorderLayout.CENTER);
2、流式布局(FlowLayout)
非默认,在使用前先设置布局方式
setLayout(new FlowLayout());居中对齐
setLayout(new FlowLayout(FlowLayout.LEFT)); 左对齐
setLayout(new FlowLayout(FlowLayout.RIGHT)); 右对齐
3、网格布局(GridLayout)
非默认,在使用前先设置布局方式
setLayout(new GridLayout(a,b,c,d));
a:行数
b:列数
c:网格水平间距
d:网格垂直间距
各种窗体常用组件
1、按钮 JButton
2、面板 JPanel
3、标签 JLabel
4、文本框 JTextField
5、密码框 JPasswordField
6、单选按钮 JRadioButton
7、复选框 JCheckBox
8、按钮组 ButtonGroup 把单选按钮添加进按钮组,使其只能选择一个。
我来展示一下各布局,边界布局
public class Gui extends JFrame{
JButton an1,an2,an3,an4,an5; //东西南北中一共5个按钮所以定义5个按钮,定义按钮或者
//其他一定是在自定义方法的前面
Gui(){
an1 =new JButton("东");//前面定义了按钮这里新建按钮属性,括号里面是按钮显示的东西
an2 =new JButton("西");
an3 =new JButton("南");
an4 =new JButton("北");
an5 =new JButton("中");
this.add(an1,BorderLayout.EAST); //没有设置布局默认为边界边界布局
this.add(an2,BorderLayout.WEST); //边界布局是分为东西南北中,如果
this.add(an3,BorderLayout.SOUTH); //没有设定东西南北就全部在中间
this.add(an4,BorderLayout.NORTH); //这些都是设置按钮的位置,这行就是按钮4在南
this.add(an5,BorderLayout.CENTER); //EAST为东WEST为西SOUTH为南NORTH为北
this.setTitle("标题");
this.setVisible(true);
this.setSize(300,200);
this.setLocation(300,400);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setResizable(false);
}
public static void main(String[] args) {
Gui dx=new Gui();
}
}
运行结果:
流式布局展示如下:
import java.awt.*;
import javax.swing.*;
public class GUI extends JFrame{
JButton an,an1,an2,an3,an4;
GUI(){
an =new JButton("东");//按钮
an1 =new JButton("西");
an2 =new JButton("南");
an3 =new JButton("北");
an4 =new JButton("中");
this.setLayout(new FlowLayout());//流式布局
this.add(an);
this.add(an1);
this.add(an2);
this.add(an3);
this.add(an4);
this.setTitle("标题");
this.setVisible(true);
this.setSize(300,200);
this.setLocation(300,400);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setResizable(false);
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
GUI DX=new GUI();
}
}
运行结果:
网格布局展示如下:
import java.awt.*;
import javax.swing.*;
public class GUI extends JFrame{
JButton an,an1,an2,an3,an4;
GUI(){
an =new JButton("东");//按钮
an1 =new JButton("西");
an2 =new JButton("南");
an3 =new JButton("北");
an4 =new JButton("中");
this.setLayout(new GridLayout(2,3,60,90));//3行2列,宽60,高90,网格
this.add(an);
this.add(an1);
this.add(an2);
this.add(an3);
this.add(an4);
this.setTitle("标题");
this.setVisible(true);
this.setSize(300,200);
this.setLocation(300,400);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setResizable(false);
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
GUI DX=new GUI();
}
}
运行结果: