void drawCrystalBall(int x, int y, int diameter, Color c, Graphics2D g2d) {
Paint p = g2d.getPaint();
RadialGradientPaint paint = new RadialGradientPaint(x + diameter / 3, y + diameter / 3, diameter / 2, new float[] { 0.0f, 0.9f }, new Color[] { Color.WHITE, c });
Map<RenderingHints.Key, Object> map = new HashMap<RenderingHints.Key, Object>();
map.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
map.put(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
g2d.setRenderingHints(map);
g2d.setPaint(paint);
g2d.fill(new Ellipse2D.Double(x, y, diameter, diameter));
g2d.setPaint(p);
}