Vor kurzem möchte ich Echtzeit-Kurven-Diagramme verwenden. Ich habe es online gefunden. Es gibt zwei Möglichkeiten, es umzusetzen. Eine davon ist die offizielle Instanz von JfreechArt memorususagedemo.java. Durch eine interne Klasse, die java.swing.timer implementiert, werden die Echtzeitdaten zu Timeseries in seinem Hörer hinzugefügt. Da Timer in Echtzeit ausgeführt wird, gibt es bei dieser Methode kein Problem. Sie können sich auf den Code beziehen.
Eine andere Möglichkeit besteht darin, die Runnable-Schnittstelle der Echtzeitklasse zu implementieren. In seiner Run () -Methode werden Echtzeitdaten durch unendliche Schleifen zu Timeries hinzugefügt. Das Folgende ist der einfachere Implementierungscode:
//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.xylplot; import org.jfree.data.time.millisecond; import org.jfree.data.time.timeries; import org.jfree.data.time.timeSerieScollection; Public Class RealtimechArt erweitert ChartPanel implementiert Runnable {private statische Timeseries Timeseries; privater langer Wert = 0; public realTImechArt (String chartContent, String -Titel, String yaxisName) {Super (createChart (chartContent, title, yaxisname)); } private statische jfreechart createChart (String -ChartContent, String -Titel, String yaxisname) {// Erstellen Sie die Zeitreihenobjekte Timeries = new Timeseries (ChartContent, Millisecond.class); TimeserieScollection TimeserieScollection = New TimeserieScollection (Timeseries); Jfreechart jfreechart = chartfactory.createtimeSerieschart (Titel ", TimeserieScollection (Sekunden), Yaxisname, TimeserieScollection, true, False); // Einstellungsbedingte Datenbereiche jfreechart; (long) (Math.Random ()*20+80); Argumente) {JFrame Frame = New JFrame ("Test -Diagramm"); Frame.Addwindowlistener (neuer Fensteradapter () {public void WindowsClosing (WindowEvent WindowEvent) {System.exit (0);}});Bei beiden Methoden gibt es ein Problem, dh jedes Mal, wenn ein Diagramm implementiert wird, muss es umgeschrieben werden, da Echtzeitdaten nicht über Parameter übertragen werden können. Ich frage mich, ob es möglich ist, Echtzeitdaten über setxxx () -Methode zu übergeben, damit die Echtzeit-Kurvenzeichnungsklasse eingekapselt werden kann und nur einige Parameter übergeben kann oder wer einen besseren Weg hat?
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.