?? draw.java
字號(hào):
/**這個(gè)類用于畫(huà)餅圖*/
/**用移動(dòng)相同的圓來(lái)生成立體狀的餅圖*/
import javax.swing.*;
import java.awt.*;
import java.math.*;
/**繼承JDialog*/
public class draw extends JDialog{
Container cp;
public draw(){
cp=getContentPane();
this.setTitle("肥胖度比例");//設(shè)置標(biāo)題
setSize(450,350);//設(shè)置大小
setLocation(100,100);//設(shè)置位置
//this.setIgnoreRepaint(false);
}
/**paint函數(shù)用來(lái)畫(huà)圖*/
public void paint(Graphics g){
int i,j,sum=0,qsum,x,y;
int q[]=new int[5];
double qq;
Color c[]=new Color[5];
for(i=0;i<5;i++) sum+=Fat.a[i];
for(i=0;i<5;i++){
q[i]=(int)(360.0*Fat.a[i]/sum+0.5);//根據(jù)數(shù)據(jù)庫(kù)的數(shù)據(jù)設(shè)置角度
//隨機(jī)生成五種顏色
c[i]=new Color((int)(Math.random()*256),(int)(Math.random()*256),(int)(Math.random()*256));
}
/**相同的圓移動(dòng)10次來(lái)形成餅圖*/
for(i=0;i<10;i++){
qsum=0;
for(j=0;j<5;j++){
g.setPaintMode();//設(shè)置模式
g.setColor(c[j]);//設(shè)置畫(huà)筆顏色
g.fillArc(40-i,40-i,280,280,qsum,q[j]);//畫(huà)圓弧
if(i==9){
g.setXORMode(Color.black);//設(shè)置模式
if(qsum<180)qq=qsum+q[j]*4/5.0f;
else qq=qsum+q[j]*2/5.0f;
x=180+(int)(100*Math.cos(qq*Math.PI/180));//計(jì)算x坐標(biāo)
y=185-(int)(100*Math.sin(qq*Math.PI/180));//計(jì)算y坐標(biāo)
g.drawString((int)(q[j]*100/360.0*100)/100.0f+"%",x,y);//寫(xiě)上百分比
}
qsum=qsum+q[j];
}
}
/**顯示比例*/
String s[]={"瘦","正常標(biāo)準(zhǔn)","超重","一度肥胖","二度肥胖"};
for(i=0;i<5;i++){
g.drawString(s[i]+":"+(int)(q[i]*100/360.0*100)/100.0f+"%",350,80+i*40);
}
g.setPaintMode();//重新設(shè)置為畫(huà)的模式
g.setColor(Color.LIGHT_GRAY);//設(shè)置顏色
g.drawOval(30,30,280,280);//畫(huà)圓
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -