java问题求助,swing组件。关于绘图,做一个“画板”的小作业遇到的问题。谢谢!
比如说在一个继承了Canvas的类上拖拽出来一个矩形。已经实现拖拽的效果(mouseDragged的同时显示随着拖拽变化大小的矩形),松开鼠标(mouseReleased...
比如说在一个继承了Canvas的类上拖拽出来一个矩形。已经实现拖拽的效果(mouseDragged的同时显示随着拖拽变化大小的矩形),松开鼠标(mouseReleased)的时候把这个矩形固定在画布上。
这个拖拽我是这个实现的,每拖拽一点(jvm监测到鼠标拖拽)就把前一个已经出来的(鼠标依旧按下状态)矩形以背景色再画一遍(擦掉原来的矩形),然后再以最新拖拽的位移画一个矩形。
这样的话,出现了问题。jvm又监测到拖拽鼠标的时候就把上一次监测到拖拽时绘制的矩形用背景色擦出掉重新绘制当前检测到拖拽后的新矩形。由于这个擦出,就把画布上以前绘制好的图形比如三角形圆形么得都擦出了一个矩形区域。
如何解决,这个又能产生拖拽效果,鼠标松开时才定下来,而且又不损坏原图像?求思路。
另外,每次最小化窗口后再次打开就没东西了。麻烦指点!
叙述的可能比较混乱。麻烦各位,谢谢!
. 展开
这个拖拽我是这个实现的,每拖拽一点(jvm监测到鼠标拖拽)就把前一个已经出来的(鼠标依旧按下状态)矩形以背景色再画一遍(擦掉原来的矩形),然后再以最新拖拽的位移画一个矩形。
这样的话,出现了问题。jvm又监测到拖拽鼠标的时候就把上一次监测到拖拽时绘制的矩形用背景色擦出掉重新绘制当前检测到拖拽后的新矩形。由于这个擦出,就把画布上以前绘制好的图形比如三角形圆形么得都擦出了一个矩形区域。
如何解决,这个又能产生拖拽效果,鼠标松开时才定下来,而且又不损坏原图像?求思路。
另外,每次最小化窗口后再次打开就没东西了。麻烦指点!
叙述的可能比较混乱。麻烦各位,谢谢!
. 展开
3个回答
展开全部
Canvas也是继承Graphics的
我想的办法是先用mousePressed记录下一开始的位置(x,y) 再通过用mouseGraggded()画图
xx yy记录位置
lastx lasty表示最后一次的横纵坐标
一直都虚画 直到最后一次再画显示出来 但无法体现橡皮筋功能
最小化再打开没有是因为没保存 得序列化什么的
我想的办法是先用mousePressed记录下一开始的位置(x,y) 再通过用mouseGraggded()画图
xx yy记录位置
lastx lasty表示最后一次的横纵坐标
一直都虚画 直到最后一次再画显示出来 但无法体现橡皮筋功能
最小化再打开没有是因为没保存 得序列化什么的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-05-18
展开全部
一个笨方法:每个图形,都记录下来,重绘时,全部重绘
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询