画图板的两种保存方法

经过将近这么久的时间的整理和加工,现在自己做的画图板的基本功能都已经实现。当然,肯定不可能有windows XP中提供的画图那样完美。我只是实现了其中的部分功能,如画直线、画圆、画矩形、曲线这几种,实现了图片的保存与打开,但这个过程只能在自己的画图板中才能查看,而不能用已有的软件来打开。现在我正向把图片保存成bmp格式努力,这样查看图片就比较方便啦。

现在我主要谈谈我对自己做的画图板的保存与打开的所想和所悟。在我刚接触Java时,我觉得我能做出画图板,我就相当的惊讶,而我现在还能实现自己的保存,我更是匪夷所思,但现在我确实做到了,虽然其中还有很多漏洞,但那种做出来的喜悦的心情是非常爽的。

一、先谈谈我画图板的第一种保存与打开方式。

这种方式是用队列来存你所画的东西,然后通过遍历这个队列来实现重绘。因为你不知道别人要画多少个图形,所以用队列比较好实现(队列的大小是可以改变的)。

如我先在我的画图板中随便画点东西:


 

画图板的两种保存方法_第1张图片


  

    这时就在我指定的目录“E:\图片”下生成了一个文件,当然这个文件是不能打开的,如果用txt应用程序打开,会出现乱码。

 

 

画图板的两种保存方法_第2张图片

 

这时我调用自己编写的打开的方法,可以打开文件的。并且跟我们刚画的图形是一样的。这也就是说,我实现了画图板文件的打开。

 

 



 

画图板的两种保存方法_第3张图片

二、画图板的第二种保存与打开方式

这种方式是用个一个二维数组,每个点就是一个像素,我们把这些点存到一个数组里,因为你画图区域的大小是固定,所以这个二维数组是可以定义的,然后通过遍历数组也能实现图形的重绘。然后文件的保存与打开方式跟上面的方法差不多,只不过一个是用队列,一个是用数组而已。
三、谈谈我对画图板两种方式的一点感悟

当我们去实现画图板的保存于打开时,一定要注意你怎么保存的,就怎么打开(即你用DataOutputStream是怎么写的,你在打开的方法中用DataInputStream就应该怎么读,且顺序都不能错)。我当时用第二种方法保存的时候,在写的时候遍历数组和在读的时候遍历数组的顺序刚好相反,导致我画的图和打开的图位置是错的。另外一个感悟就是,在编写程序的时候,一定要多看看API文档,切记切记!!!

<!--EndFragment--><!--EndFragment--><!--EndFragment-->

你可能感兴趣的:(画图板)