agentwinpie.java
来自「一个agent 工具包,可以开发移动设备应用,考虑了安全措施」· Java 代码 · 共 76 行
JAVA
76 行
package SOMA.resourceManagement.windows;
import javax.swing.*;
import java.awt.*;
class AgentWinPie extends JDialog{
public AgentWinPie(JFrame parent,AgentWinData data,int col){
super(parent,data.getColumnName(col));
setSize(300,200);
getContentPane().add(new PieChart(data,col));
setVisible(true);
}
class PieChart extends JComponent{
protected Color[] color={Color.green, Color.blue, Color.cyan, Color.magenta,
Color.yellow, Color.white, Color.pink, Color.gray};
protected String[] name;
protected int[] val;
protected int tot;
public PieChart(AgentWinData data,int column){
int i,size;
size=data.getRowCount();
name=new String[size];
val=new int[size];
tot=0;
for(i=0;i<size;i++){
name[i]=data.getName(i);
val[i]=(int)data.getIntValueAt(i,column);
tot+=val[i];
}
}
public void paint(Graphics g){
Dimension d=getSize();
int i,ox,oy,r,s_ang,ang;
ox=d.width/2;
oy=d.height/2;
if(d.width<d.height) r=d.width/2;
else r=d.height/2;
g.drawString("No data",ox-40,oy);
s_ang=0;
for(i=0;i<val.length;i++)
if(val[i]>0){
g.setColor(color[i%color.length]);
ang=val[i]*360/tot+1;
g.fillArc(ox-r,oy-r,2*r,2*r,s_ang,ang);
s_ang+=ang;
}
g.setColor(Color.black);
s_ang=0;
for(i=0;i<val.length;i++)
if(val[i]>0){
ang=val[i]*360/tot+1;
g.drawString(val[i]*100/tot+"% "+name[i],
ox-50+(int)(Math.cos(Math.PI*(s_ang+ang/2)/180)*r),
oy-(int)(Math.sin(Math.PI*(s_ang+ang/2)/180)*r)
);
s_ang+=ang;
}
g.drawOval(ox-r,oy-r,2*r,2*r);
}
} //PieChart
} //AgentWinPie
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?