可不可能只对局部进行刷新?

解决方案 »

  1.   

    闪烁的原因是你作图的时候需要重绘背景,而且你每画一个图形,画面变化一次,这样就显得在闪烁。
        解决的办法是使用双缓冲技术,方法是:先将所有的图形画到一个看不到的东西上,然后一次性的把整张图画到要显示的地方。
        具体做法:java里有一个类叫做Image,可以把他看作是一个画画的地方,不能直接看到他,他上面是可以作画的,先把所有的东西画到一个Image
    上,假如显示的地方是一个JPanel,使用JPanel的Graphics的drawImage方法
    可以把那个Image画到JPanel上,也就是显示出来。这样子就不会出现闪烁了。而且,窗体重绘的时候也只需要把Image重新画到JPanel上就行了。   
        Image img;  // 生成引用
        ......
        img = jPanel1.createImage(width,length....); // Image 不能new ,
                     // 只能这样子创建,假设显示区域是jPanel1
        .....
        img.getGraphics().drawRectangle(...) //画矩形
        img.getGraphics().drawOval(..) // 画圆
        ......
        .....
        jPanel1.getGraphics().drawImage( img, ...._) // 显示出来
        ......
        搞定。
      

  2.   

    楼上说的对 不过你也看看自己的代码 是不是还有什么要优化的
      

  3.   

    对的,我也做了一个俄罗斯方块,在他预显示的地方闪的比较多