急问:在一个canvas上画一个矩形,矩形随鼠标动而跟着变,可是我写的老是闪得太厉害了,而且鼠标不动时则矩形没了? http://www.chinajavaworld.net/forum/forums.cgi?forum=21有一个画图程序的例子,说的很清楚 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你应该重载paint方法去处理比较好,并且paint方法里面先调用super.paint(g);而在鼠标事件里面只要计下鼠标的位置,和是否拖动还是移动等就行了.我曾经做过甘特图,有拖动等等处理,而且在很多图(类似ms porject)的情况下都不会闪烁 g.drawRect(startX,startY,x-startX,y-startY);////error g.drawRect(startX,startY,x-startX,y-startY);写错了,应该擦除上一次的图形. 各位老大啊,没看清我的要求啊.我这个闪烁不是没实现双缓冲的那个闪烁.在我的图形处理的主程序中,双缓冲,重写paint()方法我都已经已经做到了.我现在的问题是:画一个矩形的时候,那个矩形是要随着鼠标的移动而矩形框随着变化的啊,这个时候根本不能用刷新,这个矩形的下面还有一层别的很大的图,所以这里采用异或模式来画,跟下面的背景图无关了.TO: simonhappy()我觉得难实现你讲的那种情况就行了,只擦除上一次画的,始终还留一次当前的,那就矩形框会显示正常了,可如何做啊? g.drawRect(startX,startY,x-startX,y-startY);////error g.drawRect(startX,startY,x-startX,y-startY);代码效果就是绘制然后马上擦除,就是闪烁的效果.当前类留个字段记录鼠标位置.每次先取该字段(上次留下的),绘制矩形(擦除上次图形)当前位置记录(下次用),然后绘制当前位置.. 你对于Java中事件理解不够.鼠标只要移动,就不停的产生鼠标事件.所以你的鼠标监听器就不停的处理.你不用担心次序,当鼠标重A移动到B,产生n个移动事件,这n个事件在系统事件线程中被按照次序发送个组件处理,所以每次处理对应的都是同一个点,你只要注意在监听器中记录位置就OK了. 终于明白老兄所说的意思.问题终于解决了,这个问题困扰我个多月了,非常感谢simonhappy() Java中,关于return关键字的实行原理有所疑问 oracle并发性问题。。。。。。下面是oracle存储过程中的语句 求一java正则表达式 请教 swing JTree的树节点拖拽问题(急啊!求助!) 对于高手来讲一个简易的题目 初学Hello World in java必看.. 新手求助!!!哪有JBUilder6的电子教程!!! java多个文件连续读取效率如何提高? 请问有大神讲讲多线程嘛 初学者的问题:用JAVA来实现一个最简单的数据库程序,该怎么做? 像visio那樣圖形元素之間可以隨意移動,連接如何用java實現
而在鼠标事件里面只要计下鼠标的位置,和是否拖动还是移动等就行了.
我曾经做过甘特图,有拖动等等处理,而且在很多图(类似ms porject)的情况下都不会闪烁
g.drawRect(startX,startY,x-startX,y-startY);
写错了,应该擦除上一次的图形.
我觉得难实现你讲的那种情况就行了,只擦除上一次画的,始终还留一次当前的,那就矩形框会显示正常了,可如何做啊?
g.drawRect(startX,startY,x-startX,y-startY);
代码效果就是绘制然后马上擦除,就是闪烁的效果.
当前类留个字段记录鼠标位置.每次先取该字段(上次留下的),绘制矩形(擦除上次图形)
当前位置记录(下次用),然后绘制当前位置..