Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2792 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  JFreeChart Erreur :" Duplicate items in 'columnKeys'."

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

JFreeChart Erreur :" Duplicate items in 'columnKeys'."

n°2002628
Subgenk
Posté le 18-06-2010 à 09:11:35  profilanswer
 

Bonjour à tous,
 
Comme mon sujet l'indique, j'ai l'erreur suivante " Duplicate items in 'columnKeys' "
 
sur cette ligne :  
 

Code :
  1. CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
  2.    serviceNames, statNames, data);


 
Dans cette méthode :

Code :
  1. private void printStatForMultipleService(
  2.   HashMap<Ref, ServiceResourceStatistic> resourcesMap) {
  3.  if (resourcesMap == null) {
  4.   System.out
  5.     .println("\nService statistics map is null...Nothing to print.\n" );
  6.  }
  7.  if (resourcesMap.size() == 0) {
  8.   System.out
  9.     .println("\nService statistics map is empty...Nothing to print.\n" );
  10.  }
  11.  // Transformation en set pour parcourir la map
  12.  Set<Map.Entry<Ref, ServiceResourceStatistic>> set = resourcesMap
  13.    .entrySet();
  14.  int nbService = set.size();
  15.  System.out.println("nb service : " + nbService);
  16.  int nbStats = getStatArrayForOneService(set.iterator().next()
  17.    .getValue()).length;
  18.  System.out.println("nb stats : " + nbStats);
  19.  String[] serviceNames = new String[nbService];
  20.  String[] statNames = new String[nbStats];
  21.  double[][] data = new double[nbService][nbStats];
  22.  // Parcours de la map
  23.  int i = 0;
  24.  for (Map.Entry<Ref, ServiceResourceStatistic> mapEntry : set) {
  25.   // Creation du tableau de stat pour chaque service
  26.   ResourceStatistic[] resStatsArray = null;
  27.   // Récupération des différentes statistiques sous forme d'Array
  28.   resStatsArray = getStatArrayForOneService(mapEntry.getValue());
  29.   int j = 0;
  30.   // Parcours du tableau de statistique
  31.   for (ResourceStatistic resStats : resStatsArray) {
  32.    // Récupération d'une des statistiques du tableau
  33.    StatisticValue[] statValues = resStats.getStatistics();
  34.    // Pärcours des valeurs de la statistiques
  35.    for (StatisticValue value : statValues) {
  36.     if (value.getType() == StatisticType.INTERVAL) {
  37.      StatisticValue.IntervalStatistic is = (StatisticValue.IntervalStatistic) value;
  38.      // Nom de la statistique
  39.      statNames[j] = resStats.getName();
  40.      // récupération de l'interval moyen
  41.      data[i][j] = is.getAverage();
  42.      j++;
  43.     }
  44.    }
  45.   }// Nom du service
  46.   serviceNames[i] = mapEntry.getKey().getNames()[mapEntry.getKey()
  47.     .getNames().length - 1];
  48.   i++;
  49.  }
  50.  // Creation du dataset
  51.  CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
  52.    serviceNames, statNames, data);
  53.  // Creation du multiple pie chart
  54.  JFreeChart chart = ChartFactory.createMultiplePieChart(
  55.    "Multiple Pie Chart", dataset, TableOrder.BY_ROW, true, true,
  56.    true);
  57.  // Sauvegarde sous format d'image en local
  58.  ChartRenderingInfo info = new ChartRenderingInfo(
  59.    new StandardEntityCollection());
  60.  File file1 = new File(this.idStat + ".jpeg" );
  61.  try {
  62.   ChartUtilities.saveChartAsJPEG(file1, chart, 800, 600, info);
  63.  } catch (IOException e) {
  64.   e.printStackTrace();
  65.  }
  66. }


 
Pour vous situer la méthode je passe en paramètre une hashmap qui contient  
une liste de service auquel sont attaché pour chacun une map de statistiques
Dans cette map de statistiques il y a des nom de statistiques et une liste de valeur rattaché à chaque noms.
Le but de ma méthode et d'à partir de cette map, récupéré pour chaque service. Tout les statistiques contenant un temps.
De ce côté là le code est bon j'ai déjà vérifier.  
 
Pour exemple la map peut contenir
 
Service 1  
---> Statistique d'appel
-------> nombre de fois
-------> intervalle d'appel
---> Statistique de transport
-------> nombre de fois
-------> intervalle d'appel
 
Service 2  
---> Statistique d'appel
-------> nombre de fois
-------> intervalle d'appel
---> Statistique de transport
-------> nombre de fois
-------> intervalle d'appel
 
Service 3
---> Statistique d'appel
-------> nombre de fois
-------> intervalle d'appel
---> Statistique de transport
-------> nombre de fois
-------> intervalle d'appel
 
Et je voudrais en tirer un graph contenant 3 pie, et chaque pie contenant le nom du service pour un pie, et pour chaque catégorie le nom de la statistiques (ex: transport ou appel) et donc la valeur sera l'espace occupé par chaque catégorie dans le pie..
 
Quelqu'un voit un problème dans mon code ?
Merci d'avance.


Message édité par Subgenk le 18-06-2010 à 09:12:41
mood
Publicité
Posté le 18-06-2010 à 09:11:35  profilanswer
 

n°2003370
Subgenk
Posté le 21-06-2010 à 15:54:56  profilanswer
 

C'est bon j'ai compris l'erreur.
 
En fait je descendait pas assez bas pour différencier le nom.
Dans mon tableau de "statname" j'avais en effet des duplicats de nom.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  JFreeChart Erreur :" Duplicate items in 'columnKeys'."

 

Sujets relatifs
[VBA] erreur 13VB6 Peut on faire arret sur toute erreur ?
Erreur d'execution '1004'[Résolut]JDBC/ ODBC erreur de connexion
erreur Affichage tableau [firefox et explorer]Une erreur à la compilation
[Debutant] Python + MYSQL Python, erreur syntaxe dans requette MYSQL Erreur Java/lang sur Java4NDS
beaucoup d'erreur l'hors d'execution veuiller m'aider[resolu] MySQL-Link resource - erreur de placement d'accolade.
Plus de sujets relatifs à : JFreeChart Erreur :" Duplicate items in 'columnKeys'."


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR