IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

probleme de actionPerformed


Sujet :

AWT/Swing Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 30
    Points
    30
    Par défaut 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 : 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

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Ce n'est pas correct de faire tes traitements dans la méthode "actionPerformed". Tu dois faire ces traitements dans un thread à part.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 30
    Points
    30
    Par défaut
    slm
    comment faire ça ?
    comment utilisee un autre thread?
    merci

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Je t'encourage à aller voir les tutoriels du site, ainsi que la FAQ. Tu y trouveras tout ce dont tu as besoin. Voici un mot clé supplémentaire : EDT. C'est le Thread qui gère l'affichage et qu'il ne faut surtout pas bloquer par des traitements lourds.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 30
    Points
    30
    Par défaut
    j'ai deja utilisee le thread edt et voici le code que j'utilise:
    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
     frame.add(l4);//la classe de panel de dessin
            new Thread( new Runnable() {
                public void run() {
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                    }
                    SwingUtilities.invokeLater(new Runnable() {
     
                        public void run() {
                            frame.remove(l4);
                        }
                    });
     
                }
            }).start();
    et ça ne marche pas
    merci por ton aide

Discussions similaires

  1. Probleme jcombobox actionperformed
    Par skouza dans le forum Composants
    Réponses: 0
    Dernier message: 04/04/2011, 09h36
  2. probleme avec actionPerformed
    Par fwkev1 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 17/12/2009, 20h14
  3. probleme avec le actionperformed
    Par tarekphp dans le forum Langage
    Réponses: 6
    Dernier message: 06/04/2008, 13h00
  4. probleme avec actionPerformed(ActionEvent e)
    Par Asmod_D dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 24/03/2007, 10h12
  5. Probleme avec actionPerformed dans JPopupMenu
    Par Bardack dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 23/02/2007, 12h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo