重绘的总结

paint方法在Component中定义,在JPI文档中有以下解释:应该绘制组件的内容时调用此方法;例如首次显示组件或者组件已损坏并需要修复时。Graphics 参数中的剪贴区矩形设置为需要绘制的区域。重写此方法的 Component 子类不需要调用 super.paint(g)。
编写画图板时接触到的组件JFrame(重量级组件)、JPanel、JButton、JLabel等类都是Component的子类,而在JFrame、JPanel中如果重写paint方法就必须要在paint方法中调用super.paint(g),否则虽然可以正常画图,但是组件无法显示,画图区域呈现透明的状态。
课堂上老师演示的重绘的使用是简单的在一个窗体上直接作直线的重绘,重绘的方法重写仅需写在JFrame的子类中,系统便会自动调用。
对这一知识的学习让我对计算机的运行有了新的认知,我们点开一个网页或者说打开一个画图软件,当我们使其后台运行时,那些网页上画图板上展示的图片文字就消失了,在下一次转为前台运行的时候才会通过重绘或通过其他的方式显现出来。由于计算机程序运行的速度极快,我们几乎感觉不到这一过程,所以感觉仿佛如同现实生活中一张纸叠一张纸,被遮住的那张纸上的内容当然不会消失。
在重绘的初学阶段我们使用数组存储图像,譬如直线,用鼠标绘出一条直线时画布面板或窗体上的监听器会将直线的首尾坐标存储在数组中,在实现重绘时再调出数组中的元素使用drawline方法重绘直线。由此推论,可以创建一个二维数组来实现不同图形如矩形、圆等的重绘,但是这样仍显局限。只能做到一些由直线组成的图形的重绘。

你可能感兴趣的:(总结)