Recentemente, quero usar gráficos de curvas em tempo real. Eu o encontrei online. Existem duas maneiras de implementá -lo. Uma é a instância oficial do Jfreechart Memoryusagedemo.java. Através de uma classe interna que implementa java.swing.timer, os dados em tempo real são adicionados àsserves em seu ouvinte. Como o timer será executado em tempo real, não há problema com esse método. Você pode consultar o código.
Outra maneira é implementar a interface executável da classe em tempo real. No método run (), dados em tempo real são adicionados às séries de tempo através de loops infinitos. A seguir, o código de implementação mais simples:
//Realtimechart.java importar 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; classe pública Realtimechart estende o ChartPanel implementa Runnable {private StaticSeries TimeSeries; Valor longo privado = 0; public RealTimechart (String ChartContent, String Title, String yaxisName) {super (createChart (ChartContent, título, yaxisName)); } private estático jfreechart createChart (String ChartContent, título da string, string yaxisName) {// Crie o objeto de série temporal timeSeries = new timeSeries (ChartContent, milisEcond.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(); // Faixa de dados onormal valueaxis.setAutorange (true); //valueaxis.setRange(0.0d.200d); System.Println (Math.Random ()*20+80); { / ** * @param args * / public static void main (string [] args) {jframe quadro = novo jframe ("gráfico de teste"); frame.setVisible (true);Há um problema com os dois métodos, ou seja, toda vez que um gráfico é implementado, ele deve ser reescrito, porque os dados em tempo real não podem ser transmitidos por meio de parâmetros. Gostaria de saber se é possível passar dados em tempo real através do método setxxx (), para que a classe de desenho da curva em tempo real possa ser encapsulada e apenas passar alguns parâmetros ou quem tem uma maneira melhor?
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.