为什么重绘?
就是因为画板做好之后,在上面画了一些图形,但当我
们最大化或最小化之后原来画的图形便消失了,图形没有在面板上存
起来。我们现在刚刚接触的重绘,并不是储存像素点,而是譬如说直
线,要用到两组坐标,我们用数组存的是坐标而已,等到调用重绘方
法时再用drawline重绘直线。但还有好多工具要用的,矩形,圆,刷
子,橡皮等,这些工具,我们如果一个一个的写,非常麻烦,所以二
维数组,用二维数组进行存储,遍历数组,写出方法即可。
那么重绘用到的方法就是paint(),那在画图板中我们用到的是
JFrame,所以重绘的方法只能写在JFrame类里,重写paint方法我们
要用super.paint(g),如果没有super,窗体只显示一个框框,根本没
有面板的说,很恐怖啊。原因就是窗体属于重量级组件,但是面板,
按钮,菜单栏都属于轻量级的组件,如果不用super是无法使这些轻量级
的组件显示出来的。
其实这样说起来觉得很简单,但是一到操作的时候,就各种小问题全都
出现了。我把数组写在不同的类里之后,忘传递参数了,一会儿又忘了获取画布对象,
致使我的重绘弄了好久,但是算是小部分成功之后,会发现,只要最大化或最小化,
它的图形总会有些移动或者说变的很奇怪,这个晚上去问,问完再改吧。