PieChart.java
Dosyayı İndir
import java.awt.*;
public class PieChart{
Color[] colors=new Color[]{Color.red,Color.GREEN,Color.BLUE};
String[] labels=new String[]{"A","B","C"};
int[] data;
int x,y,width,height;
public PieChart(int x,int y,int width,int height){
setX(x);
setY(y);
setWidth(width);
setHeight(height);
}
public void setX(int x){
this.x=x;
}
public void setY(int y){
this.y=y;
}
public void setWidth(int width){
this.width=width;
}
public void setHeight(int height){
this.height=height;
}
public void setData(int[] data){
this.data=data;
}
public void setLabels(String[] labels){
this.labels=labels;
}
public void setColors(Color[] colors){
this.colors=colors;
}
public void draw(Graphics g){
int lastAngle=0;
for(int i=0;i<data.length;i++){
int angle=getAngle(i);
Color c=colors[i];
g.setColor(c);
g.fillArc(x,y,width,height,lastAngle,angle);
lastAngle+=angle;
}
drawLabelArae(g);
}
private void drawLabelArae(Graphics g){
int labelX=x+width+20;
int labelY=y+10;
g.setColor(Color.black);
for(int i=0;i<data.length;i++){
int percentage=getPercentage(i);
String label=labels[i];
Color color=colors[i];
g.setColor(color);
g.drawString("%"+percentage,labelX,labelY);
g.drawString(label,labelX+30,labelY);
labelY+=20;
}
}
private int getSum(){
int sum=0;
for(int i=0;i<data.length;i++){
int intValue=data[i];
sum+=intValue;
}
return sum;
}
private int getAngle(int index){
int intValue=data[index];
int sum=getSum();
int result=(int)intValue*360/sum;
return result;
}
private int getPercentage(int index){
int intValue=data[index];
int sum=getSum();
int result=(int)intValue*100/sum;
return result;
}
}
Dosyayı İndir