本人在做一个游戏,绘图用的是JPanel,听说swing组件已经实现了双缓冲,但是我的在画一些gif图的时候,还是出现了比较明显的闪烁,请问如何解决!谢谢大家!

解决方案 »

  1.   

    1、实现了双缓冲的是 paintComponent 方法,不是 paint 方法
    2、确保双缓冲是打开的,setDoubleBuffered(true); 当然默认的情况下是 true,一般不用开,不过可以确认一下
    3、要看具体代码
    4、如果是自动播放的gif图片,java对这个的绘制一向不大行
      

  2.   

         我做的是植物大战僵尸游戏,那些植物啊僵尸啊都是gif,窝重绘的间隔时间较短10毫秒。有什么方法能解决这种闪烁?楼上的谢谢了
      

  3.   

    Graphics2D绘制,有方法可以解决闪耀。
      

  4.   

    建议不要用GIF,用paintComponent画, 单开一个线程在不同的画面间切换形成动画
    麻烦不了太多的 多开一个类就行了
      

  5.   

    如果不用gif的话,那些动作就无法实现了。期待高手回答
      

  6.   

         如果不用gif的话,确实可以实现,但是必须把gif的每一帧导出来,然后一帧一帧地话~~代码麻烦,图片资源的管理也很麻烦,觉得这不是好方法,不过还是要谢谢你!希望还有人能够帮帮我……
      

  7.   

    不用gif也可以实现的,不过很麻烦= =你可以用flash或者framework打开那个gif,就得到若干张静态图片具体看gif是由多少张图片构生的。= =当然,这个只是最笨的做法,你说的swing我不懂,我只知道awt包里有image可以做虚拟图片进行双缓冲,swing本来就是调用awt用纯java语言构生的,速度怎么比还是比不过awt的包。