/////// PieSec.java /////// import java.awt.*; /** Draws a color pie chart: with a section, indexed sec, raised */ public class PieSec extends PiePlot { public PieSec(int n, double[] perc, Color[] c, int r) { super(n, perc, c); if (r>0) rise = r; // raise r pixels } protected PieSec() { } public void section(int i) { if ( sec != i && i >= 0 && i < items ) { sec = i; repaint(); } } public void paint(Graphics g) // override { Color t = color[sec]; color[sec] = shaded(t, 0.8); super.paint(g); int j = Math.min(y0, rise); g.setColor(color[sec]); for (int i=1; i < j; i++) { g.fillArc(x0, y0-i, w, h, ang0[sec], ang1[sec]); } g.setColor(color[sec]=t); g.fillArc(x0, y0-j, w, h, ang0[sec], ang1[sec]); } public Color shaded(Color c, double s) { return new Color ( (int) (s*c.getRed()), (int) (s*c.getGreen()), (int) (s*c.getBlue())); } int sec=0; int rise = 12; }