Recientemente, quiero usar gráficos de curvas en tiempo real. Lo he encontrado en línea. Hay dos formas de implementarlo. Uno es la instancia oficial de Jfreechart MemoryUsageDemo.java. A través de una clase interna que implementa java.swing.timer, los datos en tiempo real se agregan a Timeseries en su oyente. Dado que el temporizador se ejecutará en tiempo real, no hay problema con este método. Puede consultar el código.
Otra forma es implementar la interfaz ejecutable de la clase en tiempo real. En su método Run (), los datos en tiempo real se agregan a Timeseries a través de infinitos bucles. El siguiente es el código de implementación más simple:
//Realtimechart.java import org.jfree.chart.chartfactory; importar org.jfree.chart.chartpanel; importar org.jfree.chart.jfreechart; importar org.jfree.chart.axis.valueaxis; importar org.jfree.chart.plot.xyplot; importar org.jfree.data.time.millisecond; importar org.jfree.data.time.timeseries; importar org.jfree.data.time.timeseriescollection; La clase pública RealTimechart extiende los implementos de ChartPanel Runnable {Timeseries de Timeseries Statics privadas; valor largo privado = 0; public RealTimechart (String ChartContent, Title String, String YaxisName) {super (CreateChart (ChartContent, Title, YaxisName)); } private static jfreechart createChart (String ChartContent, String Title, String YaxisName) {// Cree el objeto Times Timeseries = New Timeseries (ChartContent, MilliseCond.Class); TimeseriesCollection TimeseriesCollection = New TimeseriesCollection (Timeseries); JFreeChart jfreechart = ChartFactory.createTimeSeriesChart(title,"TimeSeriesCollection(seconds),yaxisName,timeseriescollection,true,true,false); XYPlot xyplot = jfreechart.getXYPlot(); //Onorthogonal coordinate setting ValueAxis valueaxis = xyplot.getDomainAxis(); // Rango de datos 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);Hay un problema con ambos métodos, es decir, cada vez que se implementa un gráfico, debe reescribirse, porque los datos en tiempo real no se pueden transmitir a través de los parámetros. Me pregunto si es posible pasar datos en tiempo real a través del método setxxx (), de modo que la clase de dibujo de la curva en tiempo real se pueda encapsular, y simplemente pasar algunos parámetros o quién tiene una mejor manera.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.