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 :

Non exécution d'une méthode repaint()


Sujet :

AWT/Swing Java

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    252
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 252
    Points : 64
    Points
    64
    Par défaut Non exécution d'une méthode repaint()
    Bonsoir à tous!!
    Ce qui m'amène ce soir est assez simple: j'ai créé une simulation graphique s'executant dans un Jpanel; Par ailleurs j'ai utilisé une interface graphique via visual editor; le souci est le suivant: il n'y a aucun affichage graphique dans la JFrame!! Pourtant la simulation

  2. #2
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    252
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 252
    Points : 64
    Points
    64
    Par défaut
    (oups...) pourtant la simulation s'execute en toile de fond... Après utilisation du debugger d'eclipse, j emapercois que la méthode repaint n'est jamais appelée....

    Voici mon code:
    méthode de simulation graphique:
    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
     
    public void simulationGraphique(String nbCycle){
     
      int nbCycleInt=Integer.parseInt(nbCycle);
      this.laGrille = new Grille(this.getAvion(), this.getOcean());
      this.laGrille.setVisible(true);
      this.getContentPane().add(this.laGrille);
     
      if (nbCycleInt==0){
       System.out.println("Pas de simulation");
       this.repaint(); 
      }
     
     
      else{
       if (this.getSimulation()!=null){
       for (int i=1; i<=nbCycleInt; i++){
        this.getSimulation().uncycle();
        temporisation();
        this.getLaGrille().repaint();}
       }
      }
     }
    Méthode d'affichage graphique (classe Grille, type JPanel):
    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
     
     
     public void affichageDecorDeFond(Graphics g){
     
      Graphics2D comp2D= (Graphics2D)g;
      for(int i=0 ; i < this.hauteurDecor ; i++){
       for(int j=0 ; j < this.longueurDecor ; j++){
     
        this.tableauDeBase[i][j].affichageEcran(comp2D,i+4,j);
     
       }
      }
     }
     public void affichageAvion(Graphics g){
     
      Graphics2D comp2D= (Graphics2D)g;
      for(int i=0 ; i < this.hauteurCarlingue ; i++){
       for(int j=0 ; j < this.longueurCarlingue ; j++){
     
        this.carlingueAvion[i][j].affichageEcran(comp2D,i+10,j+10);
     
       }
      }
     }
     public void paintComponent(Graphics g)
     {
      super.paintComponent(g);
      this.affichageDecorDeFond(g);
      this.affichageAvion(g);
     }
    A titre indicatif, dans la classe Grille, lorsque j ecrée une JFrame dans le main, et que je lui ajoute la simulation, il n'y a aucun souci avec le repaint().... Quelqu'un peut il m'aider à détecter l'erreur dans mon code, et à la corriger??
    Bonne soirée
    Merci

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 18
    Points : 18
    Points
    18
    Par défaut
    salut,
    essaye de changer cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     this.getLaGrille().repaint();}
    dans la methode simulationGraphique par celle-ci : pour que toute ta JFrame se redessine et quelle redessine en meme temps ses composants.

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    252
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 252
    Points : 64
    Points
    64
    Par défaut
    J'ai déjà essayé cela, et ca ne marche pas non plus.... Là suis un peu désespéré

  5. #5
    Membre actif Avatar de Lethal
    Profil pro
    Développeur Java
    Inscrit en
    Février 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2006
    Messages : 194
    Points : 227
    Points
    227
    Par défaut
    Hello,

    Tu a essayé avec validate()?

  6. #6
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    252
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 252
    Points : 64
    Points
    64
    Par défaut
    J'ai essayé avec une méthode revalidate(), mais pareil, rien n'y fait....

  7. #7
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 117
    Points : 109
    Points
    109
    Par défaut
    Juste une question toute bête... ta JFrame elle s'affiche au moins? sinon c'est peut être que tu as oublié un setVisible(true)...

    Sinon, donnes nous aussi le code qui crée ta frame

  8. #8
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    252
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 252
    Points : 64
    Points
    64
    Par défaut
    Je m'excuse d'avance pour ceux quiont essayé de me répondre: la solution étéit relativement bête, il suffisait d'intégrer mon affichage graphique dans un Thread, et ainsi ma méthode repaint() s'exécute à chaque tour de simulation!!

    Merci à tous ceux qui ont répondu à m on appel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 15
    Dernier message: 04/10/2007, 10h37
  2. Limiter le temps d'exécution d'une méthode
    Par nono_31 dans le forum Général Java
    Réponses: 9
    Dernier message: 16/08/2007, 15h46
  3. Exécution d'une méthode dans Page_Load
    Par Definol dans le forum ASP.NET
    Réponses: 6
    Dernier message: 17/07/2007, 15h09
  4. [JAVA]Ralentir l'exécution d'une méthode
    Par michaeljeru dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 07/03/2007, 10h48
  5. Réponses: 4
    Dernier message: 31/10/2006, 09h12

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