2010-06-21 12 views
5

Je trace un TimeTableXYDataset en utilisant un StackedXYBarRenderer. Malheureusement, les couleurs de chaque série changent à l'actualisation.Mappage du nom de la série JFreeChart à l'index de la série

Je sais comment définir des couleurs en utilisant la méthode setSeriesPaint du moteur de rendu, mais cela prend un indice de série entier comme argument. Je crée mes points de données en utilisant une chaîne comme le nom de la série:

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

Comment puis-je découvrir la correspondance entre le nom de la série et l'index de la série, je peux appeler setSeriesPaint?

Répondre

3

L'approche la plus simple consiste à mettre à jour un Map approprié au fur et à mesure que les données s'accumulent. En variante, les procédés getSeriesKey() et indexOf() peuvent être utilisés pour convertir dans l'une ou l'autre direction. Par exemple,

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

Merci - cela a fait l'affaire. –