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;
* possible de fermer la fenêtre via le gestionnaire de fenêtres.
*
* @author Arnaud Giersch <arnaud.giersch@univ-fcomte.fr>
- * @version 20141017
+ * @version 20141104
*/
public class DrawingWindow {
* @see #setBgColor(String)
* @see #setBgColor(float, float, float)
* @see #setColor(Color)
- * @see #clearGraph()
+ * @see #clearGraph
*/
public void setBgColor(Color color) {
bgColor = color;
* @see #setBgColor(float, float, float)
* @see #setColor(int)
* @see #getPointColor
- * @see #clearGraph()
+ * @see #clearGraph
*/
public void setBgColor(int rgb) {
setBgColor(new Color(rgb));
* @see #setBgColor(int)
* @see #setBgColor(float, float, float)
* @see #setColor(String)
- * @see #clearGraph()
+ * @see #clearGraph
* @see <a href="http://www.w3.org/TR/SVG/types.html#ColorKeywords">liste des noms de couleurs</a>
*/
public void setBgColor(String name) {
* @see #setBgColor(int)
* @see #setBgColor(String)
* @see #setColor(float, float, float)
- * @see #clearGraph()
+ * @see #clearGraph
*/
public void setBgColor(float red, float green, float blue) {
setBgColor(new Color(red, green, blue));
* @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());
}
synchronized (image) {
graphics.drawPolygon(poly);
}
- panel.repaint(poly.getBounds());
+ Rectangle bounds = poly.getBounds();
+ bounds.setSize(bounds.width + 1, bounds.height + 1);
+ panel.repaint(bounds);
}
/**
graphics.drawPolygon(poly);
graphics.fillPolygon(poly);
}
+ Rectangle bounds = poly.getBounds();
+ bounds.setSize(bounds.width + 1, bounds.height + 1);
panel.repaint(poly.getBounds());
}
* @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;
}
/**
* @return vrai (true) si un bouton a été pressé
*
* @see #waitMousePress(long)
- * @see #getMouseX()
- * @see #getMouseY()
- * @see #getMouseButton()
+ * @see #getMouseX
+ * @see #getMouseY
+ * @see #getMouseButton
*/
public boolean waitMousePress() {
return waitMousePress(-1);
* @return vrai (true) si un bouton a été pressé
*
* @see #waitMousePress()
- * @see #getMouseX()
- * @see #getMouseY()
- * @see #getMouseButton()
+ * @see #getMouseX
+ * @see #getMouseY
+ * @see #getMouseButton
*/
public boolean waitMousePress(long timeout) {
boolean result = false;
* Suspend l'exécution pendant un certain temps.
*
* @param secs temps d'attente en seconde
+ *
+ * @see #msleep
+ * @see #usleep
*/
- static void sleep(long secs) {
+ public static void sleep(long secs) {
try {
Thread.sleep(secs * 1000);
}
* Suspend l'exécution pendant un certain temps.
*
* @param msecs temps d'attente en millisecondes
+ *
+ * @see #sleep
+ * @see #usleep
*/
- static void msleep(long msecs) {
+ public static void msleep(long msecs) {
try {
Thread.sleep(msecs);
}
* Suspend l'exécution pendant un certain temps.
*
* @param usecs temps d'attente en microsecondes
+ *
+ * @see #sleep
+ * @see #msleep
*/
- static void usleep(long usecs) {
+ public static void usleep(long usecs) {
try {
Thread.sleep(usecs / 1000, (int)(usecs % 1000) * 1000);
}
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));