我想在java中绘制饼图菜单,其中椭圆形中有8个馅饼,大小相等。 问题是当我在椭圆形中绘制一个圆弧时,下一个圆弧与前一个圆弧重叠并改变其颜色,但我希望在圆圈内用不同颜色的8个相等尺寸的填充圆弧。任何人都可以告诉我如何实现这一目标?这是我的代码。
public class mypanel extends JPanel {
int mx = 20;
int my = 20;
int ms = 120;
int mg = 120;
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.red);
g2.drawOval(mx, my, 100, 100);
g2.fillArc(mx, my, 100, 100, 0, 45);
g2.setColor(Color.blue);
g2.fillArc(mx, my, 100, 100, 0, 60);
g2.setColor(Color.white);
g2.fillArc(mx, my, 100, 100, 0, 20);
g2.setColor(Color.black);
g2.fillArc(mx, my, 100, 100, 0, 80);
g2.setColor(Color.blue);
g2.fillArc(mx, my, 100, 100, 0, 95);
}
}
答案 0 :(得分:4)
这应该可以解决问题:
Color[] c = {Color.BLACK, Color.RED, Color.BLUE, Color.YELLOW,
Color.GREEN, Color.CYAN, Color.MAGENTA, Color.PINK};
for(int i=0; i<8; ++i){
g.setColor(c[i]);
g.fillArc(x, y, w, h, i*45, 45);
}
答案 1 :(得分:2)
jfreechart库包含几个基本demos,包括PieChartDemo1
。单击类名以查看相应的source。任何CategoryAnnotation
都应该适用,并且支持丰富的events系统。