📄 circleresult.java
字号:
package main;
import java.awt.*;
import java.util.*;
import javax.swing.*;
import javax.swing.border.*;
import main.myClass.*;
public class CircleResult extends JPanel implements Observer{
myHashtable result;
ResultPanel parent;
int radius=100,size;
myGraphics my=new myGraphics();
public CircleResult(ResultPanel rs){
((Observable)(rs)).addObserver(this);
parent=rs;
setBackground(Color.white);
}
public void update(Observable ob,Object o){
result=((ResultPanel)ob).result;
repaint();
}
public void update(Graphics g){
paint(g);
}
public void paint(Graphics g){
Point central=new Point((int)((getSize().width-radius*2)/2+100),150);
g.setColor(Color.white);
g.fillRect(0,0,getSize().width,getSize().height);
g.setColor(Color.black);
if(result!=null){
size=result.size();
long sum=0;
int start=0;
long[] time=new long[size];
for(int i=0;i<size;i++){
time[i]=Long.parseLong(result.getValue(i));
sum+=time[i];
}
for(int i=0;i<size-1;i++){
g.setColor(parent.color[i]);
g.fillArc(central.x-100,central.y-100,2*radius,2*radius,start,(int)(360*time[i]/sum));
my.drawString(g,central.x,central.y,radius,start+(int)(360*time[i]/(sum*2)),result.getKey(i),Color.black);
start+=(int)(360*time[i]/sum);
}
g.setColor(parent.color[size-1]);
g.fillArc((int)((getSize().width-radius*2)/2),50,2*radius,2*radius,start,360-start);
my.drawString(g,central.x,central.y,radius,start+(int)((360-start)/2),result.getKey(size-1),Color.black);
}
else{
g.drawString("数据还没有处理完毕",getSize().width/2-50,getSize().height/2);
}
}
public void addLabel(JPanel p,String s,Color c){
JLabel here=new JLabel(s,JLabel.CENTER);
here.setBackground(c);
here.setForeground(Color.black);
here.setBorder(new LineBorder(Color.black));
p.add(here);
}
public Dimension getPreferredSize(){
return new Dimension(500,300);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -