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 d'un Canvas


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 15
    Points : 14
    Points
    14
    Par défaut mise à jour d'un Canvas
    Bonjour,
    je veux apprendre le java, et pour cela, j'ai fait un jeu de dame.
    Pour cela, j'utilise une classe grille qui étant Canvas.
    J'ai redéfini la methode paint. dans cette methode, j'affiche un fond d'écran: un gif (ma grille),et je lance l'affichage de mes pieces + selecteur.(des gifs aussi).
    Le problème est que ça clignote dure.
    Que dois-je faire?
    (j'aimerais gardé la notion d'un fond d'écran, pour "essayer" de réutiliser ma classe pour afficher autre chose, faire d'autre type de jeux)
    J'ai essayé de "conditionner" l'affichage du fond d'écran, pour qu'il ne le fasse qu'une fois, mais je perd a ce moment la le fond d'écran....
    Une idée?

  2. #2
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    je rajoute que a chaque fois que je bouge mon selecteur, je lance la méthode paint

  3. #3
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Remplace le Canvas par JComponent ou JPanel et surcharge paintComponent() au lieu de paint(), ça ne clignotera plus. Attention, cela nécessite d'utiliser Swing et non pas AWT. Si tu veux utiliser AWT il faudra implémenter un système de double-buffering, cf la FAQ. Je te déconseille vivement AWT, notamment parceque Swing dispose de son propre double-buffer.

  4. #4
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Merci, ça marche bien.
    Une petit question : J'ai fait les modifs et mon rendu est strictement similaire à avant (sauf pour le clignotement). Mon canvas est devenu un Jpanel, par contre j'ai chercher sur le net la description exacte de ce composant, avantage inconvénient, pourquoi plutot prendre Jpanel plutot qu'un JComponent. J'ai du mal a trouvé ces renseignements. Quelqu'un a un petit lien? Un site qui n'explique pas les bases de swing, mais qui fourni une liste de composant (uniquement pour l'affichage) avec avantage/inconvenient...

  5. #5
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Un JComponent ne dessine rien par défaut et est non-opaque. Un JPanel est opaque et dessine une couleur de fond. C'est tout

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

Discussions similaires

  1. Problème de mise à jour d'un Canvas
    Par byubi dans le forum Composants
    Réponses: 4
    Dernier message: 03/05/2011, 01h11
  2. [mise à jour]Comment procéder sans tout péter...
    Par FFF dans le forum Installation
    Réponses: 3
    Dernier message: 10/09/2003, 08h11
  3. Mise à jour de la version de MySQL
    Par jobstar dans le forum Administration
    Réponses: 8
    Dernier message: 18/08/2003, 10h45
  4. mise à jour de champs time (interbase)
    Par pram dans le forum XMLRAD
    Réponses: 6
    Dernier message: 04/03/2003, 10h25
  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