SWT GC的drawLine方法的乙個隱藏Bug

2021-04-08 13:45:34 字數 622 閱讀 6920

今天在用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一點體會:往往最絕望的時候能發生轉機,在放棄之前再堅持一下往往就能解決問題~

南寧大宗平台裡 drawline的問題

關於在南寧裡 drawline的問題仍然沒有解決,在圖形上繪製直線段。用法 drawline cond1,price1,cond2,price2,expand 當cond1條件滿足時,在price1位置畫直線起點,當cond2條件滿足時,在price2位置畫直線終點,expand為延長型別。1表示向...

招標方的苦惱

客戶接觸spr前所面臨的度量 估算問題 作為專案招標方,該客戶需要對專案進行較為準確的估算以便從數十個投標方種選擇出合適的 商。客戶之前已制定了一些內部的估算規則,但現在希望能夠建立規範的估算流程並改進估算能力,能夠根據現有的屬性 成熟度和環境引數更準確的估算專案開發的工作量 人員配置 成本 等。s...

加速Mysql repair table的方法

set session myisam sort buffer size 256 1024 1024 set session read buffer size 64 1024 1024 set global myisam max sort file size 100 1024 1024 1024 se...