首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

画图板中重绘功能遇到的有关问题

2013-12-22 
画图板中重绘功能遇到的问题画图板的功能还在日趋完善,现在正在努力实现利用自定义队列存储绘图信息然后重

画图板中重绘功能遇到的问题
画图板的功能还在日趋完善,现在正在努力实现利用自定义队列存储绘图信息然后重绘的功能,在实现这个功能的过程中,遇到的最多的异常就是java.lang.ClassCastException了,



造成这个异常的原因就是重绘时读取存储的信息时出现了错误,导致一些类赋值时不匹配。

就拿直线来说,我们要保存直线的信息,需要在每次画完直线时存储这条直线的信息,即在鼠标释放(MouseReleased)里面添加直线的首尾两个点的坐标、用于判断图形类型的标识符、图像线条的粗细以及直线的颜色。代码如下:
( 其中x1,y1为直线的第一个点即鼠标按下的点的坐标,list为用于存放信息的自定义队列。)

//鼠标释放的监听public void mouseReleased(MouseEvent e){x2 = e.getX();y2 = e.getY();//保存两个点list.add(x1);list.add(y1);list.add(x2);list.add(y2);if("line".equals(shape_command)){//画直线g.drawLine(x1, y1, x2, y2);//保存画笔粗细list.add(0);//保存标识符list.add("line");}else if("pencil".equals(shape_command)){//保存画笔粗细list.add(0);//添加铅笔标志位list.add("pencil");}        //保存颜色list.add(color_command);     }


我们需要注意的是发现这个问题很不容易,我们需要非常了解这个代码的执行顺序以及各种功能的逻辑,发现问题并解决很重要,更重要的时能得到经验,避免以后再出现类似的错误。

热点排行