简单画板-4
简单画板-4
实现重绘:
1当画板在放大或者最小化的时候会发现以前所画的图形全部消失,原因在于没有将所画的图形保存。
2最大化或最小化切换时,窗体都要重新绘制,系统默认会重新画Swing 组件(按钮对象不回消失),但图形不回自动画上去。
3保存要用到数组,即将同一类对象存储到数组中。
4 该包下共建了4个类 分别是主函数FrameTest,监听器 FrameListener 所画图形类Graph 自定义队列 GraphList存储所画图形
5遇到些问题包括
(1)重写父类的方法要记着调用super.paint(g)方法,否则会出现窗体是透明的,自己电脑桌面就会充当背景。
(2)画曲线时 ,用画直线的方法,在每次画直线的时候可以输出一些东西,System.ou.pringtln("我是属于中国的");会发现输出的是有限个这些“我是属于中国的”, 曲线本来是有无限个点构成,电脑却可以算清是多少哥,化无限为有限。 跟电脑定义的图形规则有关
(3)画曲线时,应该先将所画的直线保存,然后再交换坐标即 //创建一个Graph对象
Graph curve=new Graph(x1,y1,x2,y2,"曲线");
//将该对象添加到自定义队列中
graphlist.add(curve);
//交换坐标
x1=x2;
y1=y2;
否则重绘时画出来的是零星的一些点。
附属图片1 是监听器中 GraphList 空指针异常
图片2是正常的较为粗糙的画板