欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

另一種方式就是將實(shí)時(shí)類實(shí)現(xiàn)Runnable接口,在其run()方法中,通過(guò)無(wú)限循環(huán)將實(shí)時(shí)數(shù)據(jù)添加進(jìn)TimeSeries,下面是較簡(jiǎn)單的實(shí)現(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)建時(shí)序圖對(duì)象 
  timeSeries = new TimeSeries(chartContent,Millisecond.class); 
  TimeSeriesCollection timeseriescollection = new TimeSeriesCollection(timeSeries); 
  JFreeChart jfreechart = ChartFactory.createTimeSeriesChart(title,"時(shí)間(秒)",yaxisName,timeseriescollection,true,true,false); 
  XYPlot xyplot = jfreechart.getXYPlot(); 
  //縱坐標(biāo)設(shè)定 
  ValueAxis valueaxis = xyplot.getDomainAxis(); 
  //自動(dòng)設(shè)置數(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","隨機(jī)數(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); 
  } 
 
 }); 
 } 
} 

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java獲得一個(gè)數(shù)組的指定長(zhǎng)度排列組合算法示例

    Java獲得一個(gè)數(shù)組的指定長(zhǎng)度排列組合算法示例

    這篇文章主要介紹了Java獲得一個(gè)數(shù)組的指定長(zhǎng)度排列組合算法,結(jié)合實(shí)例形式分析了java排列組合相關(guān)數(shù)組遍歷、運(yùn)算操作技巧,需要的朋友可以參考下
    2019-06-06
  • SpringMVC中Model和ModelAndView的EL表達(dá)式取值方法

    SpringMVC中Model和ModelAndView的EL表達(dá)式取值方法

    下面小編就為大家分享一篇SpringMVC中Model和ModelAndView的EL表達(dá)式取值方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • java實(shí)現(xiàn)多人聊天室可視化

    java實(shí)現(xiàn)多人聊天室可視化

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)多人聊天室可視化,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Hibernate迫切連接和普通連接的區(qū)別實(shí)例詳解

    Hibernate迫切連接和普通連接的區(qū)別實(shí)例詳解

    這篇文章主要介紹了Hibernate迫切連接和普通連接的區(qū)別實(shí)例詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Jenkins環(huán)境搭建之下載與安裝過(guò)程

    Jenkins環(huán)境搭建之下載與安裝過(guò)程

    Jenkins是一個(gè)功能強(qiáng)大的應(yīng)用程序,允許持續(xù)集成和持續(xù)交付項(xiàng)目,集成Jenkins可以用于一些測(cè)試和部署技術(shù),對(duì)Jenkins環(huán)境搭建之下載與安裝過(guò)程感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • java日期相關(guān)類實(shí)例詳解

    java日期相關(guān)類實(shí)例詳解

    這篇文章主要介紹了java日期相關(guān)類實(shí)例詳解,小編覺(jué)得還是挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。
    2017-10-10
  • Java數(shù)據(jù)結(jié)構(gòu)之鏈表詳解

    Java數(shù)據(jù)結(jié)構(gòu)之鏈表詳解

    本篇文章我們將講解一種新型的數(shù)據(jù)結(jié)構(gòu)—鏈表,鏈表是一種使用廣泛的通用數(shù)據(jù)結(jié)構(gòu),它可以用來(lái)作為實(shí)現(xiàn)棧,隊(duì)列等數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ).文中有非常詳細(xì)的介紹,需要的朋友可以參考下
    2021-05-05
  • Java實(shí)現(xiàn)斗地主案例

    Java實(shí)現(xiàn)斗地主案例

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)斗地主案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • Java實(shí)現(xiàn)一鍵生成表controller,service,mapper文件

    Java實(shí)現(xiàn)一鍵生成表controller,service,mapper文件

    這篇文章主要為大家詳細(xì)介紹了如何利用Java語(yǔ)言實(shí)現(xiàn)一鍵生成表controller,service,mapper文件,文中的示例代碼講解詳細(xì),需要的可以收藏一下
    2023-05-05
  • MyBatis如何調(diào)用存儲(chǔ)過(guò)程與存儲(chǔ)函數(shù)

    MyBatis如何調(diào)用存儲(chǔ)過(guò)程與存儲(chǔ)函數(shù)

    這篇文章主要介紹了MyBatis如何調(diào)用存儲(chǔ)過(guò)程與存儲(chǔ)函數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11

最新評(píng)論