Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix build infrastructure for independent project.
[graphlib_java.git] / DrawingWindow.java
index 1b93c57..9ec6121 100644 (file)
@@ -7,6 +7,7 @@ import java.awt.Graphics2D;
 import java.awt.Graphics;
 import java.awt.Point;
 import java.awt.Polygon;
+import java.awt.Rectangle;
 import java.awt.Toolkit;
 import java.awt.event.KeyAdapter;
 import java.awt.event.KeyEvent;
@@ -34,7 +35,7 @@ import javax.swing.JPanel;
  * possible de fermer la fenĂȘtre via le gestionnaire de fenĂȘtres.
  *
  * @author Arnaud Giersch <arnaud.giersch@univ-fcomte.fr>
- * @version 20141021
+ * @version 20141104
  */
 public class DrawingWindow {
 
@@ -242,6 +243,8 @@ public class DrawingWindow {
      * @see #setColor
      */
     public void drawPoint(int x, int y) {
+        if (x < 0 || y < 0 || x >= width || y >= height)
+            return;
         synchronized (image) {
             image.setRGB(x, y, graphics.getColor().getRGB());
         }
@@ -356,7 +359,9 @@ public class DrawingWindow {
         synchronized (image) {
             graphics.drawPolygon(poly);
         }
-        panel.repaint(poly.getBounds());
+        Rectangle bounds = poly.getBounds();
+        bounds.setSize(bounds.width + 1, bounds.height + 1);
+        panel.repaint(bounds);
     }
 
     /**
@@ -378,6 +383,8 @@ public class DrawingWindow {
             graphics.drawPolygon(poly);
             graphics.fillPolygon(poly);
         }
+        Rectangle bounds = poly.getBounds();
+        bounds.setSize(bounds.width + 1, bounds.height + 1);
         panel.repaint(poly.getBounds());
     }
 
@@ -404,7 +411,8 @@ public class DrawingWindow {
      * @see #setBgColor(int)
      */
     public int getPointColor(int x, int y) {
-        return image.getRGB(x, y);
+        return (x < 0 || y < 0 || x >= width || y >= height) ?
+            0 : image.getRGB(x, y) & 0x00ffffff;
     }
 
     /**
@@ -651,7 +659,6 @@ public class DrawingWindow {
         m.put("lightgray",              new Color(0x00d3d3d3));
         m.put("lightgreen",             new Color(0x0090ee90));
         m.put("lightgrey",              new Color(0x00d3d3d3));
-        m.put("",                       new Color(0000000000));
         m.put("lightpink",              new Color(0x00ffb6c1));
         m.put("lightsalmon",            new Color(0x00ffa07a));
         m.put("lightseagreen",          new Color(0x0020b2aa));