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 + -
显示快捷键?