bonjour tout le monde voici un petite code qui permet de dessiner un histogramme (il lit les coordoner dans un fichier) mais le problemme que il n'affiche pas le histogramme tanque je pas fait bouger la fenetre ? aider moi SvP



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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
/**Importation des librairies*/
import java.io.*;
import java.util.*;
import java.awt.*;
import javax.swing.*;
 
 
 
 
public class Histogramme extends JPanel
{
 
	int p=0;
private int        nbrePoint      = 0;//nbre total de coordonnée (point) disponible
private int        tailleAxeX     = 600;//largeur de 
private int        tailleAxeY     = 400;//hauteur de  
private int        multiplicateur = 1;//coefficient pour l'agrandissement
private float      etalonnage     = 0;//espace entre les points
private Vector     tableauValeur  = new Vector();//vecteur contenant les valeurs
private Vector     tableauNom     = new Vector();//vecteur contenant les nom des colonnes
Container x;
 
 
 
/**Méthode d'initialisation  - initialise les paramètres du graphique*/
public  Histogramme(Container x)
{
 
this.x=x;
BufferedReader  fluxEntree       = null;
 
String          colonne          = new String("");
String          valeur           = new String("");
String          ligne            = new String("");
int             indiceSeparateur = 0;
int             nbreDeLigne      = 0;
 
 
 
try
{
 
fluxEntree   = new BufferedReader(new  FileReader("age.txt"));
 
//Lecture du fichier
do 
  {
  	ligne            = fluxEntree.readLine();
	indiceSeparateur = ligne.indexOf(";");
  	colonne          = new String(ligne.substring(0,indiceSeparateur));
  	valeur           = new String(ligne.substring(indiceSeparateur+1,ligne.length()));
  	tableauNom.addElement(colonne);
    tableauValeur.addElement(valeur);
    nbreDeLigne++;	
  }
while(fluxEntree.ready());
 
//Fermeture du fichier et des flux
fluxEntree.close();
 
//Initialisation paramêtres du graphique
tailleAxeX     = 400 ;
tailleAxeY     = 400 ;
multiplicateur = 3;
nbrePoint      = nbreDeLigne - 1;
etalonnage     = tailleAxeX / nbrePoint;
 
 
}		
catch (Exception erreur) 
          { 
 
          }
}
 
 
 
 
 
/**Méthode de dessin du graphique*/
public void paintComponent(Graphics g)
{  super.paintComponent(g);
try
{System.out.println(p++);
 
 
Graphics    pinceauNormal    = x.getGraphics();
Graphics2D  pinceau2D        = (Graphics2D) pinceauNormal;
int         marge            = 20;
int         pointOrigineX    = marge;
int         pointOrigineY    = 400;
int         i                = 1;
int         j                = 1;
int         pointXRect       = 0;
int         pointYRect       = 0;
int         largeurRect      = 0;
int         hauteurEtalonnee = 0;
Enumeration liste            = null;
String      nomAbcisse       = null;
String      nomOrdonnee      = null;
String      temporaire       = null;
Integer     hauteurRect      = null;//Variables pour chaque rectangle
 
System.out.println("bonjour");
 
//setBackground(new Color(255,255,238));
//On trace l'axe des ordonnées (axes des Y)
pinceau2D.setColor(Color.blue);
pinceau2D.setFont(new Font("ARIAL",1,18));
pinceau2D.drawLine(marge,25,marge,tailleAxeY-19);
pinceau2D.drawString("^",marge-5,30);
//On trace l'axe des abcisses (axes des X)
pinceau2D.drawLine(pointOrigineX,pointOrigineY-19,tailleAxeX+20,tailleAxeY-19);
pinceau2D.drawString(">",tailleAxeX+25,tailleAxeY-10);
//On indique le point (0,0) point origine
pinceau2D.setFont(new Font("ARIAL",1,16));
pinceau2D.drawString("0",pointOrigineX-10,pointOrigineY);
 
//On indique le nom des axes
pinceau2D.setFont(new Font("ARIAL",1,12));
nomAbcisse  = (String)tableauValeur.firstElement();
nomOrdonnee = (String)tableauNom.firstElement();
pinceau2D.drawString(nomOrdonnee,tailleAxeX-nomAbcisse.length()-50,tailleAxeY+10);
pinceau2D.drawString(nomAbcisse,5,10);
 
//On trace les rectangles
pinceau2D.setColor(Color.black);
liste = tableauValeur.elements();
while(liste.hasMoreElements())
{
if(i!=1)
  {
  	//on evite la ligne 1 pour ne pas avoir les titres des axes	
    hauteurRect      = new Integer((String)liste.nextElement());
    hauteurEtalonnee = hauteurRect.intValue() * multiplicateur ;
    largeurRect      = (int)(etalonnage);
    pointXRect       = ((int)((i-2) * etalonnage)) + marge;
    pointYRect       = (int)(tailleAxeY - hauteurEtalonnee - marge);
 
    //On trace le rectangle correspondant en indiquant la valeur
    pinceau2D.setColor(new Color(200,j + 150,j + 100));
    pinceau2D.fill3DRect(pointXRect,pointYRect,largeurRect,hauteurEtalonnee,true);
    pinceau2D.setColor(Color.darkGray);
    pinceau2D.drawString(hauteurRect.toString(),pointXRect+((int)(etalonnage / 2)),pointYRect - 3);
    pinceau2D.setColor(new Color(200,j + 150,j + 100));
    pinceau2D.drawString((String)tableauNom.elementAt(j),pointXRect,pointOrigineY + 15);
    j++;
 
 
  }	
  else //Cas de la ligne 1 qui à déja été traité
     temporaire  = (String)liste.nextElement();
 
i++;	
}	
//dispos();
System.out.println("athmane");
//On force l'affichage
g.dispose();
 setVisible(true);
 
}
catch (Exception erreur) 
          { 
          //showStatus("[Erreur] Création : "+erreur.toString());          
          }
 
 
 
		  }//Fin de la méthode Paint()
 
 
}
 
 
voici la class   Test
 
 
*******************************************************
 
 
 
import javax.swing.*;
import java.awt.*;
 
class  Test  extends JFrame{
 
public Test()
{
setTitle(" Hstogramme ");
setSize(800,700);
Container c=getContentPane();
Histogramme p=new Histogramme(c);
//p.setPreferredSize(new Dimension(300, 300));
 
c.add(p);
}
public static void main(String args[])
{
new Test().setVisible(true);
 
}
 
}