最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JFreeChart實現(xiàn)實時曲線圖

 更新時間:2018年06月19日 11:14:02   作者:finethere  
這篇文章主要為大家詳細介紹了JFreeChart實現(xiàn)實時曲線圖的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

最近要用到實時曲線圖,在網(wǎng)上大概找了一下,有兩種實現(xiàn)方式,一種就是JFreeChart的官方實例MemoryUsageDemo.java.通過一個實現(xiàn)java.Swing.Timer的內(nèi)部類,在其監(jiān)聽器中將實時數(shù)據(jù)添加進TimeSeries,由于Timer是會實時執(zhí)行的,所以這個方法倒是沒有什么問題,可以參考代碼。

另一種方式就是將實時類實現(xiàn)Runnable接口,在其run()方法中,通過無限循環(huán)將實時數(shù)據(jù)添加進TimeSeries,下面是較簡單的實現(xiàn)代碼: 

//RealTimeChart .java 
import org.jfree.chart.ChartFactory; 
import org.jfree.chart.ChartPanel; 
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; 
 
public class RealTimeChart extends ChartPanel implements Runnable 
{ 
 private static TimeSeries timeSeries; 
 private long value=0; 
  
 public RealTimeChart(String chartContent,String title,String yaxisName) 
 { 
  super(createChart(chartContent,title,yaxisName)); 
 } 
  
 private static JFreeChart createChart(String chartContent,String title,String yaxisName){ 
  //創(chuàng)建時序圖對象 
  timeSeries = new TimeSeries(chartContent,Millisecond.class); 
  TimeSeriesCollection timeseriescollection = new TimeSeriesCollection(timeSeries); 
  JFreeChart jfreechart = ChartFactory.createTimeSeriesChart(title,"時間(秒)",yaxisName,timeseriescollection,true,true,false); 
  XYPlot xyplot = jfreechart.getXYPlot(); 
  //縱坐標設定 
  ValueAxis valueaxis = xyplot.getDomainAxis(); 
  //自動設置數(shù)據(jù)軸數(shù)據(jù)范圍 
  valueaxis.setAutoRange(true); 
  //數(shù)據(jù)軸固定數(shù)據(jù)范圍 30s 
  valueaxis.setFixedAutoRange(30000D); 
 
  valueaxis = xyplot.getRangeAxis(); 
  //valueaxis.setRange(0.0D,200D); 
 
  return jfreechart; 
  } 
 
 public void run() 
 { 
  while(true) 
  { 
  try 
  { 
   timeSeries.add(new Millisecond(), randomNum()); 
   Thread.sleep(300); 
  } 
  catch (InterruptedException e) { } 
  }   
 } 
  
 private long randomNum() 
 {  
  System.out.println((Math.random()*20+80));  
  return (long)(Math.random()*20+80); 
 } 
} 
 
//Test.java 
import java.awt.BorderLayout; 
import java.awt.event.WindowAdapter; 
import java.awt.event.WindowEvent; 
import javax.swing.JFrame; 
 
public class Test 
{ 
 
 /** 
  * @param args 
  */ 
 public static void main(String[] args) 
 { 
 JFrame frame=new JFrame("Test Chart"); 
 RealTimeChart rtcp=new RealTimeChart("Random Data","隨機數(shù)","數(shù)值"); 
 frame.getContentPane().add(rtcp,new BorderLayout().CENTER); 
 frame.pack(); 
 frame.setVisible(true); 
 (new Thread(rtcp)).start(); 
 frame.addWindowListener(new WindowAdapter() 
 { 
  public void windowClosing(WindowEvent windowevent) 
  { 
   System.exit(0); 
  } 
 
 }); 
 } 
} 

 這兩中方法都有一個問題,就是每實現(xiàn)一個圖就要重新寫一次,因為實時數(shù)據(jù)無法通過參數(shù)傳進來,在想有沒有可能通過setXXX()方式傳進實時數(shù)據(jù),那樣的話就可以將實時曲線繪制類封裝起來,而只需傳遞些參數(shù)即可,或者誰有更好的辦法?

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • idea2023遠程調(diào)試springboot的過程詳解

    idea2023遠程調(diào)試springboot的過程詳解

    這篇文章主要介紹了idea2023遠程調(diào)試,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • springboot動態(tài)加載Echarts柱狀圖

    springboot動態(tài)加載Echarts柱狀圖

    這篇文章主要為大家詳細介紹了springboot動態(tài)加載Echarts柱狀圖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • struts2單個文件上傳的兩種實現(xiàn)方式

    struts2單個文件上傳的兩種實現(xiàn)方式

    這篇文章主要介紹了struts2單個文件上傳的兩種實現(xiàn)方式,有需要的朋友可以參考一下
    2014-01-01
  • java讀取文件和寫入文件的方式(簡單實例)

    java讀取文件和寫入文件的方式(簡單實例)

    下面小編就為大家?guī)硪黄猨ava讀取文件和寫入文件的方式(簡單實例)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • Mybatis的Dao層實現(xiàn)原理分析

    Mybatis的Dao層實現(xiàn)原理分析

    這篇文章主要介紹了Mybatis的Dao層實現(xiàn)原理分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • SpringSecurity如何實現(xiàn)配置單個HttpSecurity

    SpringSecurity如何實現(xiàn)配置單個HttpSecurity

    這篇文章主要介紹了SpringSecurity如何實現(xiàn)配置單個HttpSecurity,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • Java Unsafe學習筆記分享

    Java Unsafe學習筆記分享

    今天小編就為大家分享一篇Java Unsafe學習筆記,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • SpringMVC Validator驗證示例

    SpringMVC Validator驗證示例

    SpringMVC服務器驗證一種是有兩種方式,一種是基于Validator接口,一種是使用Annotaion JSR-303標準的驗證,本篇文章主要介紹,有興趣的可以了解一下。
    2017-01-01
  • Java創(chuàng)建和啟動線程的兩種方式實例分析

    Java創(chuàng)建和啟動線程的兩種方式實例分析

    這篇文章主要介紹了Java創(chuàng)建和啟動線程的兩種方式,結(jié)合實例形式分析了java多線程創(chuàng)建、使用相關(guān)操作技巧與注意事項,需要的朋友可以參考下
    2019-09-09
  • 詳解Java設計模式中的裝飾模式

    詳解Java設計模式中的裝飾模式

    裝飾模式是指在不改變現(xiàn)有對象結(jié)構(gòu)的情況下,動態(tài)地給該對象增加一些職責(即增加其額外功能)的模式,它屬于對象結(jié)構(gòu)型模式。本文將為大家詳細介紹一下裝飾模式,感興趣的可以了解一下
    2021-12-12

最新評論

新竹市| 吉林省| 昌都县| 郧西县| 奉化市| 北安市| 开化县| 曲周县| 通海县| 石柱| 临夏市| 杂多县| 普洱| 思茅市| 资溪县| 巴楚县| 东辽县| 茶陵县| 广饶县| 武邑县| 重庆市| 林州市| 阆中市| 遂溪县| 开阳县| 新蔡县| 县级市| 乌审旗| 朝阳市| 开封市| 广元市| 商河县| 长汀县| 霍林郭勒市| 咸阳市| 永登县| 纳雍县| 内黄县| 柯坪县| 岚皋县| 西平县|