Bonjour à tous,

Je voudrais afficher un graphe avec :

ChartFactory.createXYLineChart(title, cat1, cat2, categorydataset, PlotOrientation.VERTICAL, true, true, false);

Le graphe s'affiche bien mais les années affichées en abcisse sont sous la forme (1,995) au lieu de 1995 : ChartFactory rajoute un séparateur de millier.

Voici mon code qui créé mon categorydataset (les valeur à donner au createXYLineChart) :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
 
 
public static ArrayList extractDataYear_NVResults(String Filename){
		ArrayList<ArrayList> list = new ArrayList();
		Workbook workbook;		  
		ArrayList listItem;
		Sheet sheet;   
		Object objContent;
		String strContent;
		Integer intResultTypeCount;
		Integer intAnneeDebut = 0;
		Integer intAnneeFin = 0;
		Integer intAnneeIncr = 0;
		Integer intTotalTmp = 0;
 
		try{  
			workbook = Workbook.getWorkbook(new File(Filename)); 
			sheet = workbook.getSheet("dashboard_years");								
 
			intResultTypeCount = 5;
 
			intAnneeDebut = 1995; 
			intAnneeIncr = 1;
 
			intAnneeFin= 2007;
 
			//Recherche dans le tableau Excel les valeurs pour le graphe
			int i=4;	
			for ( i=4; i<intResultTypeCount; i++){
 
				listItem = new ArrayList();
 
				listItem.add(sheet.getCell(0,i).getContents());
				int j=1;
				for(int l = intAnneeDebut; l<=intAnneeFin; l++)
				{	
 
					if (sheet.getCell(j,i).getContents() == null)
					{			
						strContent = "0";
					}  									
 
					strContent = sheet.getCell(j,i).getContents();				
					listItem.add( strContent );
 
					j = j + 10;
				}
				list.add( listItem );				
			}
		}
		catch(Exception  e)
		{
 
		} 
		return list;
	}
 
//*********************************************************
private static XYDataset createDataset(String base, String cat1, String cat2, String dataDirectory, String flag, String type, String ResultType, int intBeginYear){
 
	XYSeriesCollection  dataset = new XYSeriesCollection ();
 
 
			String filename = dataDirectory + base + "_Results.xls";
			ArrayList<ArrayList> data = new ArrayList();
			ArrayList<String> curveTitle = new ArrayList();
			String period = type;
			int nb;
 
				data = BARResultsList.extractDataYear_NVResults(filename);
 
				for(int i=0; i<data.size(); i++){
 
					int year = intBeginYear; 
					int months = 3;
					XYSeries series;
					if(flag.equals("NVresults") {
						series = new XYSeries( (String)(data.get(i)).get(0) );
						for(int j=1; j<(data.get(i)).size(); j++){
							series.add(year, Integer.parseInt( (String)(data.get(i)).get(j)) );
							year++;
						}
					}
					dataset.addSeries(series);
				}
 
		return dataset;
}
 
 
//******************************************************************
 
public static JFreeChart createChart(String base, String title, String cat1, String cat2, String dataDirectory, String flag, String type, String ResultType, int intBeginYear)  {
 
 
		XYDataset categorydataset = createDataset(base, cat1, cat2, dataDirectory, flag, type, ResultType, intBeginYear);
		JFreeChart jfreechart = ChartFactory.createXYLineChart(title, cat1, cat2, categorydataset, PlotOrientation.VERTICAL, true, true, false); 
		//get a reference to the plot for further customisation...
 
		return jfreechart; 
		} 
	}
Excusez-moi pour la longueur du code, mais en gros je vais chercher des valeurs dans un tableau Excel et je contruis un ArrayList qui permet de construire un XYDataset (avec les années en première position) pour créer le graphe.

Merci beaucoup pour votre aide.

Laurent.