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 :

DrawString et affichage dans un JPanel


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 DrawString et affichage dans un JPanel
    Bonjour, j'ai des informations qui devraient s'afficher dans un JPanel, lui même dans une JFrame, via la méthode drawString...

    Le problème est le suivant: au debugger, tout se passe bien, les différentes infos sont prises en compte, mais pas d'affichage!!

    Pour avoir des infos en temps reel, j'ai utilisé un Thread;

    voici les éléments de code:

    méthodes paintComponent et run de la JFrame:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // Methode Run
     public void run(){
      this.repaint();
     }
    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
     
    //Methode paintComponent
     public void paintComponent(Graphics g){
      super.paintComponent(g);
      Graphics2D g2D=(Graphics2D)g;
     
      if (this.getSimulation()!=null){
      // Affiche le nombre de passagers restants dans l'avion
      int nbPassagersRestants = this.getSimulation().getNbpanic();
      String passagersRestants = "Il reste "+nbPassagersRestants+" passagers dans l'avion";
      g2D.drawString(passagersRestants, 10,10);
     
    //   Affiche le nombre de passagers evacues
      if (this.getSimulation().getNbdehors()!=0){
      int nbPassagersEvacues = this.getSimulation().getNbdehors();
      String passagersEvacues = "Déjà "+nbPassagersEvacues+" passagers ont été évacués";
      g2D.drawString(passagersEvacues, 20,10);}
      else{
       String passagersEvacues = "Aucun passager évacué";
       g2D.drawString(passagersEvacues, 20,10);
      }
     
    //   Affiche le nombre de passagers morts
      if (this.getSimulation().getNbdead()!=0){
      int nbPassagersMorts = this.getSimulation().getNbdead();
      String passagersMorts = "Malheureusement, "+nbPassagersMorts+" passagers sont décédés durant l'évacuation";
      g2D.drawString(passagersMorts, 30,10);}
      else{
       String passagersMorts = "Aucun décés signalé";
       g2D.drawString(passagersMorts, 30,10);
      }
     }}
    }
    et la méthode utilisé pour l'execution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public void simulationGraphique(String a){
     
      int nbCycle=Integer.parseInt(a);
      Ocean indien = new Ocean(32,80);
      laGrille = new Grille(indien, this.avion);
      donneesDirect = new SuiviDonnees(this.getSimulation());
      donneesDirect.start();
      laGrille.start(this.simulation, nbCycle);
      this.jContentPane.add(laGrille);
      this.jContentPane.add(donneesDirect);
      this.setVisible(true);
     }
    Merci d'avance à ceux et celles qui ont une idée pour arranger ce problème!!

  2. #2
    iuz
    iuz est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 114
    Points : 110
    Points
    110
    Par défaut
    Ton thread ne dort jamais, ça vient peut être de là.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public void run() {
      try {
        this.repaint();
        Thread.sleep(100);
      }catch (Exception e) {}
    }

  3. #3
    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 suivi ton conseil, mais ca marche pas...... Merci tout de meme, les thread.sleep m'aide pour ma simu!!

  4. #4
    iuz
    iuz est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 114
    Points : 110
    Points
    110
    Par défaut
    J'ai testé, et ça fonctionne bien pour moi.
    méthodes paintComponent et run de la JFrame:
    Mais la méthode paintComponent que tu utilises c'est celle de la JFrame ? Si c'est le cas, le problème vient de là, il faut prendre celle du JPanel

    Edit : euh... la méthode paintComponent n'existe pas pour les JFrame donc ça ne doit pas être ça

  5. #5
    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!! Ma méthode paintComponent est celle du JPanel, pas de souci là dessus!!

  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
    C'est bon j'ai trouvé: il fallait calquer le thread.sleep sur celui qui gère la simulation!!!
    Donc problème réglé...
    Merci

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

Discussions similaires

  1. Mise à jour de l'affichage dans un JPanel
    Par TheDreamTeam dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 06/04/2010, 21h40
  2. problème affichage JPanel dans un JPanel
    Par rburney dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 02/04/2008, 11h36
  3. Affichage d'une image (BLOB) dans un JPanel
    Par Vips dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 24/03/2008, 15h38
  4. Affichage image dans un JPanel
    Par Revan dans le forum 2D
    Réponses: 2
    Dernier message: 02/01/2008, 21h52
  5. Affichage d'image dans un Jpanel
    Par vince351 dans le forum AWT/Swing
    Réponses: 13
    Dernier message: 22/03/2007, 11h27

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