importjavax.swing.*;importjava.awt.GridLayout;importjava.awt.Graphics;publicclassShowPieChartextendsJFrame{publicShowPieChart(){add(newDrawPieChart());}publicstaticvoidma...
import javax.swing.*;
import java.awt.GridLayout;
import java.awt.Graphics;
public class ShowPieChart extends JFrame{
public ShowPieChart(){
add(new DrawPieChart());
}
public static void main(String[] args){
ShowPieChart frame = new ShowPieChart();
frame.setTitle("总成绩分析图");
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500,500);
frame.setVisible(true);
}
class DrawPieChart extends JPanel{
protected void paintComponent(Graphics g){
super.paintComponent(g);
int xCenter = getWidth() / 2;
int yCenter = getHeight() / 2;
int radius = (int)(Math.min(getWidth(),getHeight()) * 0.4);
int x = xCenter - radius;
int y = yCenter - radius;
g.drawString("Projicts--20%",(int)(xCenter + radius * Math.cos(Math.PI / 5)),
(int)(yCenter - radius * Math.sin(Math.PI / 5)));
g.drawString("Quizzes--10%",xCenter,yCenter - radius);
g.drawString("Midterms--30%",(int)(xCenter - radius * Math.cos(Math.PI/5)),
(int)(yCenter - radius * Math.sin(Math.PI/5)));
g.drawString("Final--40%",(int)(xCenter - radius * Math.cos(Math.PI * 2 / 5)),
(int)(yCenter + radius * Math.sin(Math.PI * 2 / 5)));
g.setColor(Color.red);
g.fillArc(x,y,2 * radius,2 * radius,0,72);
g.setColor(Color.blue);
g.drawArc(x,y,2 * radius,2 * radius,72,108);
g.setColor(Color.green);
g.fillArc(x,y,2 * radius,2 * radius,108,216);
g.setColor(Color.white);
g.drawArc(x,y,2 * radius,2 * radius,216,360);
}
}
}
展开