# HG changeset patch # User Jaroslav Tulach # Date 1283661786 -7200 # Node ID eb6053abdd000697c745f044fe1d1177144f2345 # Parent 47d62a3afe639b581a98e613b085f2b2de9cc1cf Double buffering when drawing diff -r 47d62a3afe63 -r eb6053abdd00 visidor/src/main/java/cz/xelfi/quoridor/visidor/Viewer.java --- a/visidor/src/main/java/cz/xelfi/quoridor/visidor/Viewer.java Sun Sep 05 00:07:32 2010 +0200 +++ b/visidor/src/main/java/cz/xelfi/quoridor/visidor/Viewer.java Sun Sep 05 06:43:06 2010 +0200 @@ -41,6 +41,7 @@ import java.awt.Rectangle; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; +import java.awt.image.BufferedImage; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JPanel; @@ -175,8 +176,10 @@ } public void mouseMoved(MouseEvent e) { - final Graphics2D d2 = (Graphics2D) getGraphics(); + BufferedImage img = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_ARGB); + final Graphics2D d2 = img.createGraphics(); + d2.setBackground(getBackground()); d2.clearRect(0, 0, getWidth(), getHeight()); paintComponent(d2); @@ -209,8 +212,9 @@ lastOrientation = Orientation.VERTICAL; } } - d2.translate(xdelta, ydelta); drawFence(lastOrientation, x, y, d2); + + getGraphics().drawImage(img, 0, 0, null); } }