`

我的画图板1.0<细说3.神来之笔,教你保存与提取图形>

阅读更多
(third):保存图形与提取图形
1.事先准备工作
思路1:画一条直线是不是需要知道首位两端的两个点就可以了?这个是最简单的思路,当然你也可以记住一个点,直线的长度,然后是倾角....或者其他什么的方法,不过相信应该都没有记住两个点简单,有其他想法的保存方式,请你先试试,然后咱们来一起讨论讨论
所以,可以创建一个LineShape的类,然后传入两个点,四个坐标值。
其他的矩形等都是类似,除了多边形,我打算放到下一个板块来说

思路2:在之前的监听器中,画一条直线,创建一个LineShape的对象,然后将这两个点保存进去,然后在打上标签(就是在ShapeObject中的数字),1为直线........

思路3:LineShape的对象保存好以后,然后放入到“盒子”中去,这个“盒子”就是准备工作的数组,画一条直线,创建一个LineShape的对象,然后打上标签,放到盒子中(注意这个盒子是可以改变大小的),如此循环....

思路4:当窗体发生改变时候,要调用一个方法,该方法的作用是:将盒子中所有的图形都取出来,然后寻找标签,是1的画就取出两个点,画出直线,是2的画,就取出两个点,画出对应的的矩形3.....


2.对应的程序:
                    
 //保存
                                if("line".equals(str)){
			gp.drawLine(x1, y1, x2, y2);
			//生成一个新的直线对象,
			LineShape line=new LineShape();
                            //写上标签
			line.setnum(1);
			//将所花直线的两个点传给这个直线对象
			line.setX1(x1);
			line.setX2(x2);
			line.setY1(y1);
			line.setY2(y2);
			//将直线对象保存到盒子中去;
			shape.add(line);
                            }
                 //取出


                 //取出所有的形状
		for(int i=0;i<shape.getsize();i++){
			//得到每一个队列中的元素
			ShapeObject type=shape.getnum(i);
			//得到队列中的每一元素的形状标志
			int shapetype=type.getnum();
			//如果得到的数字为零,则为直线
			if(shapetype==1){
				//将图形对象强制转换为子类的直线对象
				//作用:可以用子类对象调用直线的坐标点
				LineShape line=(LineShape)type;
				int x1=line.getX1();
				int x2=line.getX2();
				int y1=line.getY1();
				int y2=line.getY2();
				gp.drawLine(x1, y1, x2, y2);
			}
                        }


这里写下我所遇到的问题:
1:应该在DrawBox类中和DrawListener类中都要用到相同的“盒子”队列,结果,我却在DrawBox和DrawListener中分别new了一个对象,这个就不对了,因为这就造成你存入了一个队列,却在另外一个空队列中提取数据,导致没有数据可以提取。
2:重绘的时候,我要知道画布是哪个,我的方法是重新得到一个画布,这样的结果也是不能重绘。因为在你创建JFrame的时候,就已经new了一个画布.
分享到:
评论

相关推荐

    我的画图板1.0<细说1.准备工作,自定义队列>

    自定义队列的检测 博文链接:https://zhangchong2011.iteye.com/blog/907676

    java JDK5.0 实例开发宝典

    Jdk5.0 源代码使用说明&lt;br&gt;&lt;br&gt;1. 类型基本操作&lt;br&gt;2. 面向对象的操作 适配器模式 单列模式 工程模式 组合模式。。。&lt;br&gt;3. 精确计算数字和随机数字&lt;br&gt;4. java.util.package高级使用 List Set collection..&lt;br&gt;5. ...

    我的画图板1.0

    可以重绘的画图板 博文链接:https://zhangchong2011.iteye.com/blog/907598

    EasyEasyToolSAI1.05简体中文版

    &lt;blotmap&gt; ... 存放渗透形状材质的文件夹 &lt;brushtex&gt; ... 存放画纸质感的文件夹 &lt;elemap&gt; ... 存放笔刷形状的文件夹 &lt;toolink&gt; ... 存放钢笔类工具信息的文件夹 &lt;toolnrm&gt; ... 存放普通笔刷工具信息的文件夹

    JAVA简单画板程序设计实验报告材料.doc

    JAVA期末画板实验报告 课程题目: 运用JAVA语言编写一个画板程序,这个画板要有画图,特殊图形绘制,颜色改变,画笔 大小改变等功能. 设计思想: 1. 进展界面设计 2. 进展算法实现 3. 运行调试 4. 总结问题 设计过程: A...

    易语言模块大全(共775个模块)

    窗口外形任我设(1.0).zip 窗口热键(1.0).zip 窗口贴边隐藏(1.0).zip 窗口透明模块(1.0).zip 超文本浏览框功能扩展模块(1.2).zip 超级信息框(1.0).zip 超级列表框补助模块(1.0).zip 超级列表框列宽尺寸自动调整(1.0)....

    易语言700模块打包

    窗口外形任我设(1.0).zip 窗口热键(1.0).zip 窗口贴边隐藏(1.0).zip 窗口透明模块(1.0).zip 超文本浏览框功能扩展模块(1.2).zip 超级信息框(1.0).zip 超级列表框补助模块(1.0).zip 超级列表框列宽尺寸自动...

    画图板 代码 画图板 代码 画图板 代码

    画图板 代码画图板 代码画图板 代码画图板 代码画图板 代码画图板 代码画图板 代码画图板 代码画图板 代码画图板 代码画图板 代码画图板 代码画图板 代码画图板 代码画图板 代码画图板 代码画图板 代码画图板 代码...

    画图板彩色个人简历表格.doc

    画图板彩色个人简历表格.doc

    C++俄罗斯方块与仿EasyX图形库

    利用&lt;windows.h&gt;,&lt;conio.h&gt;,&lt;stdlib.h&gt;这三个库,实现窗口的创建,以及窗口显示区画图。 使用的是控制台创建窗口的方式(main()作为入口),没有利用WinMain()作为入口。 该资源包含图形库与利用该图形库实现的...

    JAVA开发的画图板

    本程序完成的是一个类似于Windows画图板的画图程序,由于不是开发和设计专业的绘图和图像制作软件,所以,完成的程序的简单功能包括以下几项: 1.新建 2.打开或保存 3.绘制一些基本的图形组件 4.用鼠标在绘图板上单击...

    MATLAB GUI实现动态画图曲线的源程序代码.rar

    MATLAB GUI实现动态画图曲线的源程序代码.rarMATLAB GUI实现动态画图曲线的源程序代码.rarMATLAB GUI实现动态画图曲线的源程序代码.rarMATLAB GUI实现动态画图曲线的源程序代码.rarMATLAB GUI实现动态画图曲线的源...

    Java画图版程序

    3.单击“Triangle”按钮,拖动鼠标,可以在画图板上画等边三角形。4.单击“Clear”按钮,画图板清屏。5.单击“Exitl”按钮,程序退出。6.单击右键,弹出当前图形的属性面板。可以进行如下操作: (1)单击“Color ...

    Visual C++ 编程资源大全(源码 图形)

    dither.zip&lt;br&gt;图象的边沿检测与提取,轮廓跟踪算法代码(24KB)&lt;END&gt;&lt;br&gt;57,colorrope.zip&lt;br&gt;腐蚀,膨胀,细化算法代码(31KB)&lt;END&gt;&lt;br&gt;58,morph.zip&lt;br&gt;直方图修正和彩色变换算法代码(17KB)&lt;END&gt;&lt;br&gt;59,edge.zip&lt;br&gt;...

    MFC画图板绘图并保存图片导出

    MFC的程序,可以在画图板上自由绘制,并保存为图片格式导出。 MFC的程序,可以在画图板上自由绘制,并保存为图片格式导出。

    面向对象 MFC 画图,移动等操作...

    面向对象 MFC 画图,移动等操作...面向对象 MFC 画图,移动等操作...面向对象 MFC 画图,移动等操作...面向对象 MFC 画图,移动等操作...

    精彩编程与编程技巧-用VB6.0制作画图板...

    精彩编程与编程技巧-用VB6.0制作画图板 ...

    在线绘图程序源码 ASP版 v1.0-ASP源码.zip

    ASP源码,压缩包解压密码:www.cqlsoft.com

    vc++画图板(计算机图形学)

    vc++实现了简易画图板,计算机图形学课程设计。

Global site tag (gtag.js) - Google Analytics