Double buffering when drawing
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Sun, 05 Sep 2010 06:43:06 +0200
changeset 250eb6053abdd00
parent 249 47d62a3afe63
child 251 8b62bffb1a8f
Double buffering when drawing
visidor/src/main/java/cz/xelfi/quoridor/visidor/Viewer.java
     1.1 --- a/visidor/src/main/java/cz/xelfi/quoridor/visidor/Viewer.java	Sun Sep 05 00:07:32 2010 +0200
     1.2 +++ b/visidor/src/main/java/cz/xelfi/quoridor/visidor/Viewer.java	Sun Sep 05 06:43:06 2010 +0200
     1.3 @@ -41,6 +41,7 @@
     1.4  import java.awt.Rectangle;
     1.5  import java.awt.event.MouseEvent;
     1.6  import java.awt.event.MouseMotionListener;
     1.7 +import java.awt.image.BufferedImage;
     1.8  import javax.swing.JComponent;
     1.9  import javax.swing.JFrame;
    1.10  import javax.swing.JPanel;
    1.11 @@ -175,8 +176,10 @@
    1.12      }
    1.13  
    1.14      public void mouseMoved(MouseEvent e) {
    1.15 -        final Graphics2D d2 = (Graphics2D) getGraphics();
    1.16 +        BufferedImage img = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_ARGB);
    1.17 +        final Graphics2D d2 = img.createGraphics();
    1.18          
    1.19 +        d2.setBackground(getBackground());
    1.20          d2.clearRect(0, 0, getWidth(), getHeight());
    1.21          paintComponent(d2);
    1.22          
    1.23 @@ -209,8 +212,9 @@
    1.24                  lastOrientation = Orientation.VERTICAL;
    1.25              }
    1.26          }
    1.27 -        d2.translate(xdelta, ydelta);
    1.28          drawFence(lastOrientation, x, y, d2);
    1.29 +        
    1.30 +        getGraphics().drawImage(img, 0, 0, null);
    1.31      }
    1.32  
    1.33  }