Недавно я хочу использовать диаграммы кривой в реальном времени. Я нашел это в Интернете. Есть два способа его реализации. Одним из них является официальный случай Jfreechart memoryususedemo.java. Через внутренний класс, который реализует java.swing.timer, данные в реальном времени добавляются в Timeseries в его слушателе. Поскольку таймер будет выполняться в режиме реального времени, с этим методом нет проблем. Вы можете обратиться к коду.
Другим способом является реализация запускаемого интерфейса класса в реальном времени. В своем методе run () данные в режиме реального времени добавляются в временные рамки через бесконечные петли. Ниже приведено более простой код реализации:
//Realtimechart.java import org.jfree.chart.chartfactory; Импорт org.jfree.chart.chartpanel; Импорт org.jfree.chart.jfreechart; Импорт org.jfree.chart.axis.valueaxis; Импорт org.jfree.chart.plot.xyplot; Импорт org.jfree.data.time.millisecond; Импорт org.jfree.data.time.timeseries; Импорт org.jfree.data.time.timeseriescollection; Public Class RealTimeChart расширяет chartPanel реализует {частные статические времена времени; частное длинное значение = 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 Timesseries (chartContent, millisecond.class); TimesseriesCollection TimesseriesCollection = New TimesseriesCollection (Timesseries); Jfreechart jfreechart = chartfactory.createTimeseriesSchart (заголовок, «TimesseriesCollection (секунды), yaxisName, timesseriescollection, true, true, false); xyplot xyplot = jfreechart.getxyplot (); // onorthogonal comportinate valueaxis valueaxis = xyainplot. // inoormal data data valueaxis.setautorange (true); //valueaxis.setrange(0.0d,200D); System.out.println ((Math.random ()*20+80); { / ** * @param args * / public void main (string [] args) {jframe frame = new jframe («Тестовая диаграмма»); Frame.SetVisible (TRUE);Существует проблема с обоими методами, то есть каждый раз, когда внедряется график, он должен быть переписан, поскольку данные в реальном времени не могут передаваться через параметры. Интересно, можно ли передавать данные в реальном времени с помощью метода setxxx (), чтобы можно было инкапсулировать класс рисования кривой в реальном времени, и просто передавать некоторые параметры, или у кого есть лучший способ?
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.