📄 drawflux.java
字号:
package cappacket;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class DrawFlux extends Canvas implements Runnable {
// 初始化数据
final long point[]=new long[10000];
CapPacket cp=new CapPacket();
PacketPrintl pp=new PacketPrintl();
public DrawFlux(PacketPrintl pp,CapPacket cp){
pp=this.pp;
cp=this.cp;
}
public void setPoint(long[] l){
// for(int k=0;k<122;k++){
// point[k]=(int)(Math.random()*1000000);
// }
for(int i=0;i<l.length-1;i++){
point[i]=l[i];
}
}
public void drawStr(Graphics g){
// 相关字符显示
g.setColor(Color.YELLOW);
for(int k=0;k<4;k++){
g.drawString(k*300+"kb", 0, 540-145*k);
}
g.drawString("Capture all packet", 420, 20);
g.drawString("Unit: kbps",420, 45);
}
public void paint(Graphics g){
Font font=new Font("TimesRoman",1,14);
int move=3;
// int point[] = new int[122];
g.setFont(font);
g.setColor(Color.green);
setBackground(Color.gray);
for (int i=0;i<27;i++){
g.drawLine(1,20+i*20,610,20+i*20);
}
for (int j=0;j<31;j++){
g.drawLine(5*move+j*20,1,5*move+j*20,540);
}
if(move>0)move--;
else move=3;
g.setColor(Color.red);
int t=(int)(Math.random()*10000);
// for(int k=0;k<122;k++){
// point[k]=(int)(Math.random()*1000000);
// }
for (int k=0;k<1000;k++){//共122个点
//数据处理,图形按位置、比例显示
g.drawLine(k*5,540-(int)point[k]/3500,5*k+5,540-(int)point[k+1]/3500);
}
drawStr(g);
}
public static void main(String args[]) {
PacketPrintl pp=new PacketPrintl();
CapPacket cp=new CapPacket();
DrawFlux df=new DrawFlux(pp,cp);
cp.startCapture(pp);
//df.setPoint(pp.getPoint());
df.setSize(610, 580);
df.setVisible(true);
Frame fr=new Frame();
fr.add(df);
fr.setTitle("基于Jpcap的流量统计");
fr.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
fr.setSize(610,580);
fr.setVisible(true);
}
public void run() {
// TODO Auto-generated method stub
while(true)
{
try {
Thread.sleep(3600);
}
catch (Exception e) {
}
for(int i=0;i<50;i++)
System.out.println("==="+pp.getPoint()[i]);
setPoint(pp.getPoint());
repaint();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -