SWT GC的drawLine方法的一个隐藏Bug
来源:互联网 发布:怎么在淘宝上留言 编辑:程序博客网 时间:2024/05/12 05:04
今天在用GC drawLine的时候发现一个奇怪现象。我是在一个Canvas里drawLine的,这个Canvas有滚动条,我只是在滚动条滚动时,计算Canvas里面绘制的偏移坐标,然后将所有的绘制操作加上这个坐标。我在Canvas里面drawImage, draw rect, draw line。当水平卷动时,我发现水平的line都错了,长度和位置都不对,而且随着卷动位置还会变化,有的水平线甚至消失了。而竖直卷动时一切正常。image和rectangle也都正常。而且我把line style换成dotted后,水平线也是正常的。太奇怪了啊,于是google一下SWT Canvas的bug,结果一无所获。我几乎放弃了。不过还是不死心,于是将drawLine的参数print出来,发现出错的时候,x1 <0 !!
答案出来了,原来GC在drawLine(线型为SOLID)时,没有检查点的坐标,所以当x为负时,在内存里线的起始x坐标跑到了上面去了(内存是线性的地址啊)。我立刻在drawLine的地方,限制了一下x1的坐标。Run, 果然一切正确!
虽然耽误了小半天时间,但毕竟找出了问题,也许我应该向Eclipse组织报告一下这个bug ? 我用的SWT版本是3.1.2,不知道新版是否已经解决了。
ps一点体会:往往最绝望的时候能发生转机,在放弃之前再坚持一下往往就能解决问题~
- SWT GC的drawLine方法的一个隐藏Bug
- 关于SWT drawLine bug的进一步验证
- SWT-Designer的一个Bug
- 一个隐藏多年的bug
- Lua5.1.1的一个隐藏BUG
- 查找一个隐藏很深的bug
- 从 SoundPlayer 的一个 “Bug” 看.net GC 的工作
- Debug.DrawLine 与 Gizmos.DrawLine的相同和区别
- 一个隐藏文件夹的方法
- IE6下js通过css隐藏select的一个bug
- input按钮事件的一个隐藏bug,分享出来
- swt/jface控件的隐藏与显示
- SWT控件的隐藏和显示
- 隐藏在SWT/Swing背后的故事
- swt/jface控件的隐藏与显示
- C# WPF drawLine 大量线段的绘制
- 南宁大宗平台里 drawline的问题
- 一个隐藏的Javascript的方法
- 游拉萨火车站
- java挺好的
- 一条Linux命令,一段人类文明
- !EPack (exe packer) ver 1.4 lite(b2)
- 有感世界杯
- SWT GC的drawLine方法的一个隐藏Bug
- 20岁MM和25岁MM的区别
- stringBuilder类实例
- 暑假开始了……
- 好久没有来了
- 正版Vista 与Copy 版拉斐特城堡(图片版)
- More Effective C++之32
- Web页面载入时自动打印
- 刚刚加入这里