这是一个有关Swing的问题~
我想做一个很简单的效果,就是让一个图片从一个地方移动到另一个地方~我现在是用Jpanel的repaint()来实现图片的移动,但是这样图片移动的轨迹会留下拖影,不理想,希望哪位高手能不吝赐教,高分相增!

解决方案 »

  1.   

    除非repaint()了不止一次, 不然不会留下拖影的阿
      

  2.   

    可能是我的表述有问题~
    图片从一点移动到另一点并不是瞬间移动(以一个象素为单位移动),要有肉眼可辨的速度才行~一开始我没有用线程,每次X++(X为坐标)后就repaint();假如我想要移动200象素,当我用按纽触发这个移动事件时,结果是什么都没发生,过了一会儿后图片突然跳到了另一点上。于是我用线程来实现,就是按纽出发后启动一个线程来显示图片的移动,结果移动的效果是出现了,但是移动轨迹会留下拖影~感谢楼上的朋友,但是还是没能解决关键的问题,继续等待中~
      

  3.   

    用VC的时候不用新开一个线程也可以吧,我以前在VC中的方法是重画整个背景图片,画上要移动的图片的新的位置,重画整个背景图片,画上要移动的图片的新的位置,......不断循环反复,不过这样会闪烁...
    哦,对了!!!想起来了,好像那时候是用了内存中的一种什么粘贴方法,这样就不会有拖影而且不会有闪烁了.
    楼主可以在java中寻找类似的方法.
      

  4.   

    谢谢!
    楼上说的粘贴方法我没找到诶~Waiting……
      

  5.   

    不要每次X++都repaint,可以设成x每加10repaint一次
      

  6.   

    楼上的方法我也试过的,但是问题是每次移动都会留下前一个的影子,所以1,10无论是多少都一样的啊~
    Waiting
      

  7.   

    Delphi可以设置Form的doublebuffered := true,就是双缓存,可以解决,就是Java不清楚了。
      

  8.   

    这个在Java自带的demo里面有例子,而且不只一个你自己还是好好研究研究吧
      

  9.   

    问题已经解决,在每次repaint()的时候重画背景色,这样至少看起来是没有问题了,感谢楼上诸位的帮助!