import java.awt.*;
import java.util.*;
import javax.swing.*;
public class PieChart extends JPanel {
float pixelWidth = 400f;
float pixelHeight = 400f;
float margin = 20f;
float pieHeight = pixelHeight - (2 * margin);
float pieWidth = pixelWidth - (2 * margin);
private Color[] colors;
private float[] values;
float totalValue = 0f;
public PieChart(Color[] colors, float[] values) {
this.colors = colors;
this.values = values;
setSize((int)pixelWidth,(int)pixelHeight);
for (int i=0; i<values.length; i++)
totalValue += values[i];
}
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
float startAngle = 0f;
float arcAngle;
for (int i=0; i<values.length; i++) {
arcAngle = 360f * (values[i] / totalValue);
g2.setColor(colors[i]);
if(i == 0) {
g2.fillArc((int)margin,(int)margin,
(int)pieWidth,(int)pieHeight,
(int)startAngle - 5,(int)arcAngle + 5);
} else {
g2.fillArc((int)margin,(int)margin,
(int)pieWidth,(int)pieHeight,
(int)startAngle,(int)arcAngle);
}
startAngle += arcAngle;
}
}
}