2010-06-21 13 views
5

Sto stampando un TimeTableXYDataset utilizzando un StackedXYBarRenderer. Sfortunatamente i colori di ogni serie cambiano durante l'aggiornamento.Mappatura Nome serie JFreeChart Indice serie

So come impostare i colori utilizzando il metodo setSeriesPaint del renderer, ma che accetta un indice serie intero come argomento. Creo il mio datapoints utilizzando una stringa come il nome della serie:

ds.add(new SimpleTimePeriod(us.getDate(), 
          new Date(us.getDate().getTime() + 1000*60)), 
     us.getTotal(), us.getName())); 

Come faccio a scoprire il mapping tra nome della serie e l'indice di serie in modo che posso chiamare setSeriesPaint?

risposta

3

L'approccio più semplice consiste nell'aggiornare un numero appropriato Map mentre i dati si accumulano. In alternativa, i metodi getSeriesKey() e indexOf() possono essere utilizzati per convertire in entrambe le direzioni. Ad esempio,

for (int i = 0; i < ds.getSeriesCount(); i++) { 
    String name = (String) ds.getSeriesKey(i); 
    System.out.println(ds.indexOf(name) + ": " + name); 
} 
+0

Grazie - ha fatto il trucco. –