JFreeChart

import org.jfree.chart.JFreeChart;  
import org.jfree.chart.axis.ValueAxis;  
import org.jfree.chart.plot.XYPlot;  
import org.jfree.data.time.Millisecond;  
import org.jfree.data.time.TimeSeries;  
import org.jfree.data.time.TimeSeriesCollection;  
  import java.awt.Dimension;
  import java.sql.*; 
public class RealTimeChart extends ChartPanel implements Runnable  
{  
    private static TimeSeries timeSeries,timeSeries2;  
    private long value=0;  
      double former;
    double later=0;
    public RealTimeChart(String chartContent,String title,String yaxisName)  
    {  
        super(createChart(chartContent,title,yaxisName));  
    }  
      
    private static JFreeChart createChart(String chartContent,String title,String yaxisName){  
        //创建时序图对象  
         timeSeries = new TimeSeries("data1",Millisecond.class);  
timeSeries2 = new TimeSeries("data2",Millisecond.class);  
        TimeSeriesCollection timeseriescollection = new TimeSeriesCollection();  
        timeseriescollection.addSeries(timeSeries);
timeseriescollection.addSeries(timeSeries2);
        JFreeChart jfreechart = ChartFactory.createTimeSeriesChart(title,"time()",yaxisName,timeseriescollection,true,true,false);  
         XYPlot xyplot = jfreechart.getXYPlot();  
        //纵坐标设定  
        ValueAxis valueaxis = xyplot.getDomainAxis();  
        //自动设置数据轴数据范围  
        valueaxis.setAutoRange(true);          
valueaxis.setFixedAutoRange(60000D);  //数据轴固定数据范围 30s   
        valueaxis = xyplot.getRangeAxis();  
        valueaxis.setRange(0.0D,10000D);//设置Y轴的取值范围double
        
        return jfreechart;  
      }  
  
    public void run()  
    {  
        while(true)  
        {  
        try  
        {  
            timeSeries.add(new Millisecond(),sqlrun()); 
 timeSeries2.add(new Millisecond(),1000.0); 
//System.out.println("this ="+sqlrun());
            Thread.sleep(300);  
        }  
        catch (InterruptedException e)  {   }  
        }         
    }  
      
    private long randomNum()  
    {     
        System.out.println((Math.random()*20+80));        
        return (long)((Math.random()*20+80)*100);  
    }
public double sqlrun() {  
 double zhi=0.0;     
try{ 
Class.forName("com.mysql.jdbc.Driver").newInstance(); 
String url="jdbc:mysql://localhost:3306/information_schema"; 
String user="root"; 
String password="123"; 
Connection conn= DriverManager.getConnection(url,user,password); 
Statement stmt=conn.createStatement(); 
String sql="select * from GLOBAL_STATUS where VARIABLE_NAME='BYTES_RECEIVED'"; 
ResultSet rs=stmt.executeQuery(sql); 
while(rs.next()) { 
  former=Double.valueOf(rs.getString(2)).doubleValue();
   zhi=former-later;
 System.out.println("差值为:"+zhi);
  later=former;
  if(zhi>50000){//设计这个的目的就是当第一次读取时数据过大而导致的图标取值域过大
 zhi=2000;
  }

}catch(Exception e){ 
e.printStackTrace(); 
    } 
return zhi;
    }  

}  



//Test.java
import java.awt.Dimension;
import java.awt.BorderLayout;  
import java.awt.event.WindowAdapter;  
import java.awt.event.WindowEvent;  
import javax.swing.JFrame;  
  
public class Test  
{  
  
    public static void main(String[] args)  
    {  
    JFrame frame=new JFrame("Test Chart");  
   // RealTimeChart rtcp=new RealTimeChart("Random Data","Random","Value");  //测试流量
  //TableLockChart tlc=new TableLockChart("Data","Table_Lock","Value");//测试表锁
    frame.getContentPane().add(tlc,new BorderLayout().CENTER);  
    frame.pack();  
    frame.setVisible(true); 

    (new Thread(tlc)).start();  
    frame.addWindowListener(new WindowAdapter()   
    {  
        public void windowClosing(WindowEvent windowevent)  
        {  
            System.exit(0);  
        }   
    });  
    }  

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值