probleme de actionPerformed
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:
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