作者Mpdot (Always Coca Cola)
看板java
标题Re: [问题] 有关用SetXORmode且doublebuffer开了萤 …
时间Wed Jun 14 08:44:31 2006
是的 我将哪行移除 并且把他摆到主class的ctor里面
可是结果还是一样 画图的时候 会不经意地闪烁
而且如果不开doublebuffer 看起来也没什麽差
不知道是不是我设定的方法错误...
请指教
※ 引述《[email protected] (贱兔..><")》之铭言:
: ※ 引述《[email protected] (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