预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

packageImageHandle; importjava.awt.BorderLayout; importjava.awt.Color; importjava.awt.Graphics; importjava.awt.GridLayout; importjavax.swing.JFrame; importjavax.swing.JLabel; importjavax.swing.JPanel; publicclassPiePicture{ /** *@paramargs */ publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub DemoWindow1dw=newDemoWindow1("饼状图"); dw.setBounds(dw.getToolkit().getScreenSize().width/3,dw.getToolkit() .getScreenSize().height/3, dw.getToolkit().getScreenSize().width/3,dw.getToolkit() .getScreenSize().height/3); dw.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); dw.setVisible(true); } } classDemoWindow1extendsJFrame{ //绘制饼状图面板 DrawPanel1dp=newDrawPanel1(); double[]numbers={0.3,0.4,0.2,0.3,0.1}; ColorPanel1cp=null; publicDemoWindow1(Stringtitle){ super(title); dp.setNumbers(numbers); //创建显示对应饼状图颜色信息的面板 cp=newColorPanel1(dp); add(dp,BorderLayout.CENTER); add(cp,BorderLayout.EAST); } } //绘制饼状图的面板类 classDrawPanel1extendsJPanel{ double[]numbers=null; //对应饼状图的颜色数组 Color[]colors=null; publicvoidpaintComponent(Graphicsg){ super.paintComponent(g); doubletotal=0; //计算数值数组的所有元素的总和 for(inti=0;i<numbers.length;i++){ total+=numbers[i]; } //下一个扇形的起始角度 doubletotalAngle=0; //起始角度 intstartAngle=0; for(inti=0;i<numbers.length;i++){ startAngle=(int)(totalAngle*360/total); //获取要绘制的角度 intarcAngle=(int)(numbers[i]*360/total); //绘制扇形 g.setColor(colors[i]); g.fillArc(getWidth()/6,getHeight()/6,getWidth()*2/3, getHeight()*2/3,startAngle,arcAngle); //累加角度的汇总数值,得到下一个绘制扇形的起始角度 totalAngle+=numbers[i]; } } publicdouble[]getNumbers(){ returnnumbers; } publicvoidsetNumbers(double[]numbers){ this.numbers=numbers; //生成随机颜色数组 colors=newColor[numbers.length]; for(inti=0;i<colors.length;i++){ colors[i]=newColor((int)(Math.random()*256), (int)(Math.random()*256),(int)(Math.random()*256)); } } publicColor[]getColors(){ returncolors; } } classColorP