2011-08-23 11 views
5

Digamos que he generado una tabla con el siguiente código:modificar conjunto de datos de una tabla ya construida con Java y JFreeChart

private ChartPanel createChart(){ 
     XYSeries series1 = new XYSeries("First"); 
     XYSeries series2 = new XYSeries("Second"); 
     XYSeries series3 = new XYSeries("Third"); 

     series1.add(0.0, 5.5); 
     series1.add(5, 10); 
     series1.add(10, 5.5); 

     series2.add(0.0, 2); 
     series2.add(5, 2); 
     series2.add(10, 7); 

     series3.add(0.0, 10); 
     series3.add(5, 5); 
     series3.add(10, 6); 

     XYSeriesCollection dataset = new XYSeriesCollection(); 

     dataset.addSeries(series1); 
     dataset.addSeries(series2); 
     dataset.addSeries(series3); 

     JFreeChart chart = ChartFactory.createXYLineChart("line chart example", 
       "X", "Y", dataset, PlotOrientation.VERTICAL, true, true, false); 
     ChartPanel chartPanel = new ChartPanel(chart); 
     chartPanel.setPreferredSize(new java.awt.Dimension(500, 270)); 
     return chartPanel; 
    } 

Ahora me gustaría modificar un valor previamente insertado en un XYSeries sin construir otro gráfico (no hay otra llamada para crear XYLineChart), y hacer que el gráfico se actualice automáticamente.

¿Cómo hacer esto?

Respuesta

1

Basta con mirar el api.

Existen muchos métodos diferentes, dependiendo de si conoce el índice del elemento en la serie, o si conoce el valor x, pero desea cambiar el valor y. Supongo que el diagrama se volverá a dibujar ya que todos los métodos arrojan un evento SeriesChangeEvent.

+0

¿podría decirme al menos un nombre de método? – Heisenbug

+0

'update',' updateByIndex', 'addOrUpdate'. En realidad, parece que si quieres cambiar la coordenada x, tendrás que borrar el punto primero con 'eliminar'; 'remove' puede tomar el valor x o el índice del punto en la serie. – toto2

+0

no ... en realidad me gustaría cambiar solo el cordinate. Creo que updateByIndex funcionará. Gracias. – Heisenbug

Cuestiones relacionadas