我想创建一个显示百分比的饼图。如何在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;
}
答案 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。