一、通过继承JFrame来显示一个窗口
一般步骤如下:
1.定义组件(需要那些组件,提前在main函数之前就定义)
2.创建组件(在构造中,首先创建,进行初始化)
3.添加组件到最顶层的组件JFrame
4.设置布局管理器(不设置时默认是BorderLayout ,如果需要设置在此)
5.设置默认窗体属性
先来看一个栗子:
import javax.swing.JButton;
import javax.swing.JFrame;
/**
* 演示第一个JFrame
* @author Red
*
*/
public class Test1 extends JFrame {
JFrame jf = null;
JButton jb1 = null;
public static void main(String[] args) {
// TODO Auto-generated method stub
Test1 test = new Test1();
}
//构造函数
public Test1(){
jf = new JFrame();
//创建button按钮
jb1 = new JButton("我是按钮!");
//添加button 组件
this.add(jb1);
//设置窗口标题
this.setTitle("This is a Demo!");
//设置大小
this.setSize(200, 200);
//初始位置
this.setLocation(500, 100);
//默认关闭窗口时退出
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//显示
this.setVisible(true);
}
}
二、边界布局管理器(BorderLayout )
* 演示BoderLayout 的操作
* 1.定义组件
* 2.创建组件
* 3.设置窗体属性
*
*/
public class BorderTest extends JFrame {
//定义组件
JButton jb1, jb2,jb3,jb4,jb5 ;
public static void main(String[] args) {
// TODO Auto-generated method stub
BorderTest bt = new BorderTest();
}
//构造
public BorderTest(){
//创建组件
jb1 = new JButton("东");
jb2 = new JButton("南");
jb3 = new JButton("西");
jb4 = new JButton("北");
jb5 = new JButton("中");
//将以上的jb加到JFrame\
this.add(jb1,BorderLayout.EAST);
this.add(jb2, BorderLayout.SOUTH);
this.add(jb3, BorderLayout.WEST);
this.add(jb4, BorderLayout.NORTH);
this.add(jb5, BorderLayout.CENTER);
//设置窗体属性
this.setTitle("BorderLayout Test");
this.setSize(220, 200);
this.setLocation(500, 100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
三、流式布局管理器(FlowLayout )
* 流式布局管理器案例
*
*/
public class FlowTest extends JFrame {
//定义组件
JButton jb1,jb2,jb3,jb4,jb5;
public static void main(String[] args) {
// TODO Auto-generated method stub
FlowTest ft = new FlowTest();
}
public FlowTest(){
//创建组件
jb1 = new JButton("关羽");
jb2 = new JButton("张飞");
jb3 = new JButton("赵云");
jb4 = new JButton("马超");
jb5 = new JButton("黄忠");
//将组件添加到JFrame
this.add(jb1);
this.add(jb2);
this.add(jb3);
this.add(jb4);
this.add(jb5);
//设置布局管理器
this.setLayout(new FlowLayout(FlowLayout.LEFT));
//设置窗体类型
this.setTitle("FlowLayout Test");
this.setSize(220, 200);
this.setLocation(500, 100);
//对用户禁止改变窗口大小
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
值得注意的是:如果不想让用户在拖拽窗体的时候改变大小,可以增加
//对用户禁止改变窗口大小
this.setResizable(false);
演示网格布局管理器
*
*/
public class GridTest extends JFrame {
//定义组件
int size =9 ;
JButton [] jb = new JButton[size];
public static void main(String[] args) {
// TODO Auto-generated method stub
GridTest gt = new GridTest();
}
//构造
public GridTest(){
//创建组件
for(int i=0;i<size;i++){
jb[i] = new JButton(String.valueOf(i+1));
}
//设置布局管理器
this.setLayout(new GridLayout(3,3,10,5));
//将jb组件添加到JFrame
for(int i=0;i<size;i++){
this.add(jb[i]);
}
//设置窗体属性
this.setTitle("GridLayout Test");
this.setSize(220, 200);
this.setLocation(500, 100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}