JFrame窗体的学习
一、与小恐龙程序挑战的关系
这部分学习是为理解小恐龙程序挑战做准备的,我虽然照着例题打了小恐龙程序的许多代码,但好多方法并不会用。程序中用到窗口,也就是Swing的使用。这里将记录关于JFrame窗口的学习过程。
二、学习过程
1.让窗口出现
- 单词:visible(看得见的)
- 导入swing包,先打
import javax.swing.*;
这里放星号,即*
是用到swing里的很多方法,则不一个个打出。 - 在
main
里打JFrame f=new JFrame("这里为窗口标题");
则JFrame窗口便创建完毕。 - 但从上一步完后调试代码的话,窗体并不显现出来,因为创建的窗体是不可见的。那么接下来要用到让窗体显现的方法,即
f.setVisible(true);
。如此之后运行代码便在左上角出现一个窗口。 - 到此部分的代码为:
import javax.swing.*;
class Demo{
public static void main(String[] args){
JFrame f=new JFrame("窗口标题"); // 创建窗体标题
f.setVisible(true);// 是否可见方法
}
}
- 效果为(左上角小框框):
可以通过拖拽把它拉开,效果如下:
2.窗口关闭规则问题
虽然将窗体显现出来,但仍有问题要解决。比如当我将窗体点击×后窗体虽然消失了,
但我在cmd的调试界面并没有结束,也就是说程序仍然在运行。我还需要用到一些方法在点击窗体的×时,窗体关闭并停止运行程序。这里需要用到相关的方法:f.setDefaultCloseOperation(JFrame.A);
- default(默认) Operation(运算)nothing(没有什么) hide(隐藏) dispose(处理)
- 当上一串代码里的A为:
- EXIT_ON_CLOSE
表示隐藏窗口,并停止运行程序。也就是说在这里点了×,便可在关闭窗口的同时并停止程序运行。 - DO_NOTHING_ON_CLOSE
表示无任何操作,点×不会隐藏窗口,程序也不会停止。因为这个原因我关不了这个创立的窗口,最后是打开了任务管理器才关掉这个窗口。 - HIDE_ON_CLOSE
表示隐藏窗口,但不停止程序的运行。因为我忘记了如何在cmd里关闭程序的用法,这个方法我不得不关闭cmd后再开一个。 - DISPOSE_ON_CLOSE
表示释放窗口资源。效果为,点击×后过一小会程序才停止运行。 - 到此部分的代码为:
import javax.swing.*;
class Demo{
public static void main(String[] args){
JFrame f=new JFrame("窗口标题");// 创建窗体标题
f.setVisible(true); // 是否可见方法
/*
* 窗口的关闭规则
* EXIT_ON_CLOS:隐藏窗口,并停止程序运行
* DO_NOTHING_ON_CLOSE:无任何操作
* HIDE_ON_CLOSE:隐藏窗口,不停止程序运行
* DISPOSE_ON_CLOSE:释放窗口资源
*/
//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 隐藏窗口,停止程序运行
//f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);// 无任何操作,点×不会隐藏窗口,程序也不会停止
//f.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);// 隐藏窗口,不停止程序运行
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);// 释放窗口资源
}
}
3.设置窗口的调整
前面部分的设置的窗口都是缩起来的窗口。为求美观还应调整窗口的默认尺寸、位置等。
(1)设置窗口的尺寸
输入f.setSize(600,300);
即可设置一个长600,宽300 的窗口。单位:像素。这题可以调整长和宽的数字,来设置相应尺寸的窗口。
- Size(尺寸)
(2)设置窗口座标(位置)
输入f.setLocation(300,300);
后则表示创立的窗口在桌面的座标。括号里(x,y),x和y为数值,单位像素 。以电脑桌面左上角为原点,窗口根据左上角位置相对于原点的移动。这里表示窗口从电脑左上角右移300像素,向下移300像素。
- location(位置)
- 到此的代码为:
import javax.swing.*;
class Demo{
public static void main(String[] args){
JFrame f=new JFrame("窗口标题");// 创建窗体标题
f.setVisible(true); // 是否可见方法
/*
* 窗体的关闭规则
* EXIT_ON_CLOS:隐藏窗口,并停止程序运行
* DO_NOTHING_ON_CLOSE:无任何操作
* HIDE_ON_CLOSE:隐藏窗口,不停止程序运行
* DISPOSE_ON_CLOSE:释放窗口资源
*/
//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 隐藏窗口,停止程序运行
//f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);// 无任何操作,点×不会隐藏窗口,程序也不会停止
//f.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);// 隐藏窗口,不停止程序运行
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);// 释放窗口资源
/*
* 调整窗口的大小,这里设置了一个 长:600 宽:300 的窗口。单位:像素。
*/
f.setSize(600,300);// 设置窗口的大小,(单位:像素)括号里:长,宽
/*
* 设置窗口位置,也可以说是座标。
*/
f.setLocation(200,200);//设置座标
}
}
(3)同时调整窗口尺寸、座标(位置)的方法
前面的方法调整窗口的大小和位置是分开调整的。这里则还有同时调整窗口大小、位置的方法。输入f.setBounds(600,300,350,200);
括号内的参数,x轴,y轴,长,宽。单位:像素。这里这表示一个长350像素,宽200像素,窗口从桌面左上角左右移600像素,下移300像素。
- bounds(边界)
三、本文最终代码
import javax.swing.*;
class Demo{
public static void main(String[] args){
JFrame f=new JFrame("窗口标题");// 创建窗体标题
f.setVisible(true); // 是否可见方法
/*
* 窗体的关闭规则
* EXIT_ON_CLOS:隐藏窗口,并停止程序运行
* DO_NOTHING_ON_CLOSE:无任何操作
* HIDE_ON_CLOSE:隐藏窗口,不停止程序运行
* DISPOSE_ON_CLOSE:释放窗口资源
*/
//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 隐藏窗口,停止程序运行
//f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);// 无任何操作,点×不会隐藏窗口,程序也不会停止
//f.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);// 隐藏窗口,不停止程序运行
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);// 释放窗口资源
/*
* 调整窗口的大小,这里设置了一个 长:600 宽:300 的窗口。单位:像素。
*/
//f.setSize(600,300);// 设置窗口的大小,(单位:像素)括号里:长,宽
/*
* 设置窗口位置,也可以说是座标。
*/
//f.setLocation(200,200);//设置座标
/*
* 同时调整窗口大小、位置的方法
*/
f.setBounds(600,300,350,200);// x轴,y轴,长,宽 单位:像素
}
}
四、定位日期
2020.7.6