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

Bu Sayfayı Paylaş:




Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir