Récemment, je souhaite utiliser des graphiques de courbe en temps réel. Je l'ai trouvé en ligne. Il existe deux façons de l'implémenter. L'un est l'instance officielle de JFreechart MemoryUsageGemo.java. Grâce à une classe interne qui met en œuvre java.swing.timer, les données en temps réel sont ajoutées à des séries inhabituelles dans son auditeur. Étant donné que Timer s'exécutera en temps réel, il n'y a aucun problème avec cette méthode. Vous pouvez vous référer au code.
Une autre façon consiste à implémenter l'interface Runnable de la classe en temps réel. Dans sa méthode RUN (), des données en temps réel sont ajoutées aux délais via des boucles infinies. Ce qui suit est le code d'implémentation plus simple:
//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; La classe publique RealTimeChart étend ChartPanel implémente Runnable {private static Timesieries. Valeur longue privée = 0; public RealTimeChart (String ChartContent, Title de chaîne, String yaxisName) {super (CreateChart (ChartContent, Title, YaxisName)); } private static jfreeChart createChart (String chartContent, string title, String yaxisname) {// Créer le timeSeserie de l'objet temporel = new TimesSeries (ChartContent, millisecond.class); TimesSeriesCollection TimeSeriesCollection = Nouveau TimesSeriesCollection (TimesSeries); Jfreechart jfreechart = chartfactory.createtimeSeriesChart (titre, "TimesSeriesCollection (secondes), yaxisname, timeSeriesCollection, true, true, false); xyplot xyplot = jfreechart.getxyplot (); // ontorthogonal setting () Valueaxis ValueAxis = xyylexisise; // Plage de données de paramètre ONORMAL ValueAxis.SetAutOrange (true); //valueaxis.setrange(0.0d 200d); System.out.Println (Math.Random () * 20 + 80); {/ ** * @param args * / public static void main (String [] args) {jFrame frame = new JFrame ("Test Chart"); Frame.SetVisible (true);Il y a un problème avec les deux méthodes, c'est-à-dire que chaque fois qu'un graphique est implémenté, il doit être réécrit, car les données en temps réel ne peuvent pas être transmises via des paramètres. Je me demande s'il est possible de transmettre des données en temps réel via la méthode setxxx (), afin que la classe de dessin de courbe en temps réel puisse être encapsulé et passer quelques paramètres, ou qui a une meilleure façon?
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.