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 :

Mise à jour de l'affichage dans un JPanel


Sujet :

AWT/Swing Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Mise à jour de l'affichage dans un JPanel
    Hello !

    Dans le cadre d'un projet pour les cours, je code un jeu de plateau et son IA en Java.
    Tout marche bien, sauf un détail :

    Dans un JPanel, je stocke les pions sous forme de boutons avec une icone pour leur image (qui peut être pion bleu, pion rouge ou case vide).

    Lors des tours de l'intelligence artificielle, après chacun des mouvements qu'elle effectue, je n'arrive pas à redessiner l'ensemble du plateau pour voir l'évolution de son tour.

    J'appelle la méthode suivante après chacun de ses mouvements :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public void drawPawns()
    {
      for (int i = 0; i < 5; i++)
      {
        for (int j = 0; j < 9; j++)
        {
          pion[i][j].setIcon(gManager.getBoard().getMatrix()[i][j].getImg());
        }
      }
    }

    Mais l'affichage n'est mis à jour qu'à la fin de l'ensemble des mouvements ...

    Une idée du problème ?

    Merci d'avance

  2. #2
    Membre éclairé Avatar de JoeChip
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 536
    Points : 803
    Points
    803
    Par défaut
    C'est parce que tant que ton appli est dans la boucle, elle ne laisse jamais la main aux threads qui gèrent l'affichage.

    Tu dois utiliser ta méthode dans un thread séparé, et peut-être forcer le rafraichissement de l'écran entre deux itérations, avec "Toolkit.getDefaultToolkit().sync();"

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/04/2006, 16h16
  2. mise à jour d'un champ dans un formulaire
    Par DiverSIG dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 31/03/2006, 08h10
  3. mise à jour d'un champ dans un formulaire
    Par DiverSIG dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 30/03/2006, 19h42
  4. mise à jour de champ monétaire dans un dbgrid
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 1
    Dernier message: 30/08/2005, 11h49
  5. Réponses: 2
    Dernier message: 12/02/2003, 15h26

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