java:JFrame窗体学习-1-尺寸、座标

一、与小恐龙程序挑战的关系

这部分学习是为理解小恐龙程序挑战做准备的,我虽然照着例题打了小恐龙程序的许多代码,但好多方法并不会用。程序中用到窗口,也就是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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章