Re: [問題] 有關用SetXORmode且doublebuffer開了螢 …
是的 我將哪行移除 並且把他擺到主class的ctor裡面
可是結果還是一樣 畫圖的時候 會不經意地閃爍
而且如果不開doublebuffer 看起來也沒什麼差
不知道是不是我設定的方法錯誤...
請指教
※ 引述《Gentoo.bbs@ofo.csie.ntu.edu.tw (賤兔..><")》之銘言:
: ※ 引述《QQ29.bbs@ptt.cc (Mr.Q)》之銘言:
: : 請問板上各位大大
: : 我寫一個小畫家程式
: : 使用這種寫法
: : 發現螢幕閃爍問題 把doublebuffer打開也是一樣閃
: : 請問是什麼原因呢??
: : 我設定的是 當成畫布的JPanel , 請問識不是還有別的地方也要設定doublebuffer
: : 還是說本來就會閃爍呢 ? 謝謝
: : 請各位給我一點提示吧^^
: : 以下是程式片斷
: : //drag事件內容///
: : public void mouseDragged(MouseEvent e) //drag發生則click必不發生.
: : {
: : Graphics2D gg=(Graphics2D)graphpanel.getGraphics();
: : graphpanel.setDoubleBuffered(true); //doublebuffer開啟 為繼承JPanel的class(為了方便大家檢視,所以在這邊刻意call緩衝設定)
: graphpanel.setDoubleBuffer(true);
: 只要在產生出 graphpanel 物件後設定一次就可以了吧...
: : gg.setXORMode(Color.white); //設定XORMode
: : gg.setColor(colr);
: : gg.setStroke(mypen);
: : if (line.isSelected())
: : {
: : gg.draw( new Line2D.Double(Origin.x,Origin.y,End.x,End.y));
: : End.setLocation(e.getX(),e.getY());
: : gg.draw( new Line2D.Double(Origin.x,Origin.y,End.x,End.y));
: : }
: : ///////////////////////////////以下省略//////////////////////////////////
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.216.24.56
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):