Rex Mao

          分享java技術與生活

          java畫圖程序技術小結(二) 重繪與雙緩沖

          雙緩沖,我記得有兩種方法,一種是兩個圖象,一個前臺Graphics,一個后臺Graphics,畫圖時在后臺畫,畫好了,再用前臺的Graphics畫后臺Graphics的圖片。另一種是有兩個或多個圖象,不分前后臺,顯示一個圖象時,另外的在畫,圖象循環使用(c語言時用過)。
                   給出第一種的java實現
                   a、  定義后臺圖象BufferedImage offScreenImg=offScreenImg = new BufferedImage(this.maxX, this.maxY,
                                               BufferedImage.TYPE_INT_RGB);

                   b、  得到后臺的Graphics實例

              Graphics2D offScreenG;

                  offScreenG = offScreenImg.createGraphics();

                   c、  覆蓋paintComponent方法

               public void paintComponent(Graphics g) {

                    super.paintComponent(g);

                  g.drawImage(offScreenImg, 0, 0, this.maxX, this.maxY, this);

                    }

                  繪制時用后臺Graphics,繪制好后,調用repaint(),將offScreenImg繪到面板上。


          posted on 2007-04-23 21:47 Rex Mao 閱讀(4418) 評論(1)  編輯  收藏 所屬分類: 技術

          評論

          # re: java畫圖程序技術小結(二) 重繪與雙緩沖 2008-09-05 00:31 I appreciate you

          盡管我不是搞Java,不過在C#中的雙緩沖跟Java還是很類似的。
          就是在內存中創建出來一個Graphic的對象,然后繪好圖形,最終再用所謂的前臺的Graphic把這個內存中繪好的圖像paint出來。這樣就減少閃爍了。  回復  更多評論   

          主站蜘蛛池模板: 道孚县| 台中市| 台江县| 邛崃市| 九龙城区| 建始县| 黑山县| 永和县| 安吉县| 葫芦岛市| 抚顺市| 贺兰县| 双流县| 双桥区| 北碚区| 刚察县| 长岭县| 阳山县| 伊金霍洛旗| 沁水县| 岳池县| 察雅县| 台中市| 石柱| 抚远县| 化州市| 赤水市| 昌吉市| 浦东新区| 佛冈县| 阿克苏市| 博爱县| 莎车县| 海门市| 大港区| 三门县| 句容市| 宜兰县| 久治县| 望奎县| 当阳市|