Salut,

j'ai un problème dans mon programme : j'ai une méthode de actionPerformed reliée avec menubar, si on clique sur l'item de menubar il accède a un fichier et remplit ces valeurs dans une matrice et affiche un dessin de graphe orienté un instant et après il efface et affiche un autre dessin dans une boucle while.
Le problème est que le dessin se s'affiche pas : le frame affiché est vide.
Quand j'ai essayé le même programme dans main il marche bien.
Tout le programme marche bien il n'y a qu'un problème dans l'affichage du dessin de panel

le code en général :

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
 class Interface extends Frame implements ActionListener{
MenuBar mbar = new MenuBar();
Menu meprinc3 = new Menu("Pcc");
MenuItem item6 = new MenuItem("Ford");
public Interface(){
this.setMenuBar(mbar);
meprinc3.add(item6);
item6.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{boolean status = false; 
String command = e.getActionCommand (); 
if (command.equals ("Ford"))
{er1=true;
status=openFile();
if(!status)JOptionPane.showMessageDialog(null,"Error opening file!",
 "File Open Error",JOptionPane.ERROR_MESSAGE 
);
//traitement
er=false;i=0;j=0;
 frame = new Frame();
while((i<n)&&(er==false))
{Graphisme2 l4=new Graphisme2(m1,i,j,s,k3);
 
     frame.setBackground(Color.lightGray);
     frame.setSize(500,600);
    frame.addWindowListener (new WindowAdapter( ) {
public void windowClosing(WindowEvent e)
{ System.exit(0);
}
});
frame.add(l4);
 frame.setVisible(true);
 int x=0;boolean ex=true;
 while( ex==true){o=o+1;//afficher le dessin en instance
 if(o==999999999){o=0;
 x=x+1;}
 if(x==5)ex=false;
 }
frame.remove(l4);//effacer le dessin
//traitement();
j=j+1;
if(j==n){j=0;i=i+1;}}
boolean openFile () 
{ 
 
JFileChooser fc = new JFileChooser (); 
fc.setDialogTitle ("Open File"); 
 
// Choose only files, not directories 
fc.setFileSelectionMode ( JFileChooser.FILES_ONLY); 
 
// Start in current directory 
fc.setCurrentDirectory (new File (".")); 
 
// Set filter for Java source files. 
javax.swing.filechooser.FileFilter java = new FiltreSimple("Fichiers Java",".java");
javax.swing.filechooser.FileFilter grf = new FiltreSimple("Fichiers grf",".grf");
 
fc.addChoosableFileFilter(java);
fc.addChoosableFileFilter(grf);
// Now open chooser 
int result = fc.showOpenDialog (this); 
if (result == JFileChooser.CANCEL_OPTION) { 
return true; 
} else if (result == JFileChooser.APPROVE_OPTION) { 
 
fFile = fc.getSelectedFile (); 
// Invoke the readFile method in this class 
String file_string =  readFile (fFile); 
 
if (file_string != null) 
{
 
 }
else 
return false; 
} else { 
return false; 
} 
return true; 
} // openFile 
public String readFile()
{permet de lire le fichier et remplir dans une matrice }
public static  void main (String[] args) {
 
 
Interface m=new Interface();
m.setVisible(true);}}
la classe de dessin 
import java.awt.*;     // import class Graphics
import javax.swing.*;
public classe Grapisme2 extends Panal
{public matrice m1;
int s1,i1,j1,k1;
public Graphisme2(matrice m1,i1,j1,s1,k1)
{this.m1=m1;
 this.i1=i1;
 this.j1=j1;
 this.s1=s1;
 this.k1=k1;
}
public void paint(Graphics g)
{}
}
aidez moi svp
merci d'avance