如何在Java中创建饼图

时间:2010-09-22 19:55:41

标签: java user-interface pie-chart

我想创建一个显示百分比的饼图。如何在Java中使用JFrame创建饼图?

这是我到目前为止所做的:

import javax.swing.*;
import java.awt.*;
import java.util.*;

public class PieChart extends JFrame{


private int Midterm;
private int Quizzes;
private int Projects;
private int Final;

public PieChart(){
    setPercentage();

}
private void setPercentage() {
    // TODO Auto-generated method stub

}
//construct a pie chart with percentages
public PieChart(int Midterm, int Quizzes, int Final, int Projects){
this.Midterm = Midterm;
this.Quizzes = Quizzes;
this.Final = Final;
this.Projects = Projects;
}
//return midterm
public int getMidterm(){
    return Midterm;

}
//public void setMidterm(int Midterm){
    //this.Midterm = Midterm;
    //repaint();

//}
//return Quizzes
public int getQuizzes(){
    return Quizzes;

}
public int Final(){
    return Final;
}
public int Projects(){
    return Projects;

}
//draw the circle
protected void paintComponent(Graphics g){
    super.paintComponents(g);

}
//initialize circle parameters
int circleRadius = 
    (int)(Math.min(getWidth(),getHeight())* 0.4);
int xCenter= getWidth()/2;
int yCenter = getHeight()/2;

}

3 个答案:

答案 0 :(得分:2)

绘制饼图你应该使用fillArc(x,y,宽度,高度,起始角度,弧角)

绘制彼此相关的不同弧(第1个,即左侧弧必须与前弧的右侧相同)

你必须制定自己的逻辑来设定起始角度......

喜欢

假设你有12个产品,你想为它们绘制饼图(销售)

共有12个产品的销售= 1200

个别产品销售a = 120,b = 0,c = 500,.....

单个产品的角度a =(120 * 360)/ 1200 b = 0 c =(500 * 360)/

然后设置相对弧角

我想这会给你的饼图

答案 1 :(得分:1)

你必须自己开发吗?或者您可以使用开源API吗?也许JFreeChart有你可以使用的东西。

答案 2 :(得分:0)

paintComponent方法中,会传入Graphics个对象。通过此方法,您可以使用fillArc绘制各个切片,并使用drawString标记它们。< / p>

另外,我建议您不要直接在JFrame上绘制,而是在JComponent上绘制,然后添加到JFrame。