1 package edu.uci.ics.jung.visualization.renderers;
2
3 import java.awt.BasicStroke;
4 import java.awt.Color;
5 import java.awt.Component;
6 import java.awt.Graphics;
7 import java.awt.Graphics2D;
8 import java.awt.RenderingHints;
9 import java.awt.Shape;
10 import java.awt.Stroke;
11 import java.awt.geom.AffineTransform;
12 import java.awt.geom.GeneralPath;
13 import java.util.Collections;
14
15 import javax.swing.Icon;
16
17
18
19
20
21
22 public class Checkmark implements Icon {
23
24 GeneralPath path = new GeneralPath();
25 AffineTransform highlight = AffineTransform.getTranslateInstance(-1,-1);
26 AffineTransform lowlight = AffineTransform.getTranslateInstance(1,1);
27 AffineTransform shadow = AffineTransform.getTranslateInstance(2,2);
28 Color color;
29 public Checkmark() {
30 this(Color.green);
31 }
32 public Checkmark(Color color) {
33 this.color = color;
34 path.moveTo(10,17);
35 path.lineTo(13,20);
36 path.lineTo(20,13);
37 }
38 public void paintIcon(Component c, Graphics g, int x, int y) {
39 Shape shape = AffineTransform.getTranslateInstance(x, y).createTransformedShape(path);
40 Graphics2D g2d = (Graphics2D)g;
41 g2d.addRenderingHints(Collections.singletonMap(RenderingHints.KEY_ANTIALIASING,
42 RenderingHints.VALUE_ANTIALIAS_ON));
43 Stroke stroke = g2d.getStroke();
44 g2d.setStroke(new BasicStroke(4));
45 g2d.setColor(Color.darkGray);
46 g2d.draw(shadow.createTransformedShape(shape));
47 g2d.setColor(Color.black);
48 g2d.draw(lowlight.createTransformedShape(shape));
49 g2d.setColor(Color.white);
50 g2d.draw(highlight.createTransformedShape(shape));
51 g2d.setColor(color);
52 g2d.draw(shape);
53 g2d.setStroke(stroke);
54 }
55
56 public int getIconWidth() {
57 return 20;
58 }
59
60 public int getIconHeight() {
61 return 20;
62 }
63 }