Java图形界面的重绘

在Java图形界面编程中,改变窗体大小或最小化后原本绘制的图形会消失,需要重绘。这涉及到图形数据的保存和数组的应用。首先介绍了数组的基本概念,包括声明、创建和使用,强调了数组在简化代码和存储图形数据中的作用。接着,通过创建一个保存直线数据的图形类,并利用数组存储这些数据,展示了如何在窗体重绘时恢复图形,特别提到了重写JFrame的paint方法和使用this关键字的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当我们用Graphics画出一些图形之后,一旦改变整个窗体的大小或者最小化之后,原本画出的图形就消失不见,这就需要对之前所画出的图形进行重绘,而重绘就需要重写paint方法。
我们首先来想,为什么计算机能够对图形进行重绘?是不是只有将图形数据保存下来,才能重绘。由此就引入数组的概念。
一、数组
数组能够顺序存储相同类型的很多个数据,当然,也希望能够对数组中的数据进行访问,其方法为:数组名【索引】。若一个数组中有N个值,则它的索引为0到N-1。

1.数组的声明和创建
在声明数组时,需要给出数组中所包含的数据类型和数组名,格式为:数据类型[] 数字名,如:int[] a;然后要对数组进行创建(或者说是开辟),格式为:数组名 = new 数据类型[N],N为数组长度,如:a = new int[50];

//完整的写法
int[] a;//声明数组
a = new int[50];创建数组
for(int i = 0;i<50;i++){
   //初始化
	a[i] = 0;
	}
//简洁的写法
int[] a = new int[50];//即声明并开辟了一个长度为50的整型数组,且初始化,每个元素的值为0

2.数组的使用
如果没有引入数组之前,要定义10个整型变量,只能进行如下操作

int i1,i2......i50;

这样操作,就显得代码繁杂,而引入数组之后,只需要进行如下操作

int[][] a = new int[49];

这就定义了一个长度50的int型的数组。
数组创建之后,大小就固定,不可在更改,要想得到数组的长度,可以:数组名.length。在对数组进行使用的时候,程序会自动进行边界检查,一旦所使用的索引大于数组的长度或小于0,就会报错:ArrayoutOfBoundsException.
二、重绘
引入数组之后,就可以对图形进行重绘。分为2步,第一:定义一个数组类,将保存图形数据到数组中,第二:通过数组中的数据重绘图形到窗体上。
接下来以重绘直线为例。直线的数据主要有:起始点,终止点,颜色。而前面说过,数组时用于存储相同数据类型的数据,那么就需要我们自己定义一个保存直线数据的图形类,并在类中构造方法,初始化它的属性。


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值