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 :

Faire bouger une piece sur un jeu d'echecs


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 98
    Par défaut Faire bouger une piece sur un jeu d'echecs
    Bonjour à tous.

    Voilà mon problème: j'essaie de coder une interface graphique pour un jeu d'échecs. Je souhaite faire en sorte que lorsqu'une IA jouera, l'utilisateur voir la pièce du coup choisi bouger.
    Pour ce faire, je fais bouger les coordonnées de la pièce et la dessine dans un JPanel qui contient l'échiquier. Je rafraichis l'écran régulièrement pour obtenir le mouvement de la pièce.

    La pièce bouge très bien, sans accroc, mais d'autres composants que l'échiquier (par exemple une liste de notation des coups joués) sont impactés et font apparaître des choses pour le moins inattendues et surtout "erronées".

    Pour rafraichir l'écran régulièrement j'utilise un timer qui va appeler régulièrement la méthode paintImmediately() sur le JPanel affichant l'échiquier.

    Je me doute que je n'ai pas du faire les choses dans les règles de l'art mais je ne trouve pas de solution.
    Toute aide sera la bienvenue.
    Merci para avance.


    Nom : Impression ecran.png
Affichages : 409
Taille : 306,1 Ko

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Je ne sais pas si c'est une erreur dans ton code. Mais ça me fait penser a un truc que j'ai rencontré sous windows 11 avec un ecran 4k.

    Essaye, si tu peux reproduire facilement le bug et constater si ca marche ou pas de desactiver d3d au lancement du programme avec le paramètre :

    Par contre je vois java 8 pour le projet, faudrait peut être se mettre a jour (sans méchancetée
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 98
    Par défaut
    Bonjour Wax78.

    Merci pour ta réponse.

    J'ai tenté de passer à la JVM le paramètre que tu m'as donné. Mais rien n'y fait, j'ai toujours des anomalies ...

    Pour ce qui est de la reproduction du bug, je n'y suis pas arrivé: je ne sais pas dans quelles situations il apparaît. C'est un peu pour ça que je me tourne vers vous: voir avec des gens qui ont un peu plus de bouteille.

    Pour ma version de Java, c'est vrai que je suis un peu à la traine, mais ça n'est pas une priorité (je doute que mon bug vienne de là , mais je peux me tromper...).

    Je précise que les composants (au sens swing) où apparaisse les anomalies ne sont pas à chaque fois les mêmes, ça peut varier.

    Si besoin n'hésitez pas à me demander d'éventuelles précisions !

    Merci encore.


    EDIT: voilà j'ai mis à jour la JVM dans mon Eclipse... Bug toujours présent.

    RE-EDIT: je ne demande pas forcément une solution à mon problème, mais au moins des pistes à explorer.... car là je ne sais même pas dans quelle direction chercher...
    Comme je l'ai déjà dit, toute aide sera la bienvenue.

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 98
    Par défaut
    Bonjour.

    Je reviens vers vous pour apporter une précision qui peut avoir son importance: lorsqu'une anomalie survient, si je minimise ma fenêtre et que je la rouvre, l'anomalie a disparu, l'affichage est normal.

    Voilà...

  5. #5
    Membre éprouvé
    Homme Profil pro
    Admin systèmes (Windows, Linux) et réseaux - Dev DB &Java IHM calcul scientifique
    Inscrit en
    Mai 2016
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Admin systèmes (Windows, Linux) et réseaux - Dev DB &Java IHM calcul scientifique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2016
    Messages : 90
    Par défaut
    Citation Envoyé par amauryxiv Voir le message
    Bonjour.

    Je reviens vers vous pour apporter une précision qui peut avoir son importance: lorsqu'une anomalie survient, si je minimise ma fenêtre et que je la rouvre, l'anomalie a disparu, l'affichage est normal.

    Voilà...
    Bonjour amauryxiv,

    pas facile sans le code ...

    cependant, dans l'action de l'évènement qui déclenche le défaut, essaie d'ajouter en dernière instruction
    Cordialement

  6. #6
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 98
    Par défaut
    Bonjour kick54.

    Merci pour la réponse.

    En fait je m'en suis sorti en faisant en sorte que le rafraichissement se déroule dans event-dispatch-thread (avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SwingUtilities.invokeAndWait()
    ), et depuis le problème a disparu.
    A l'occasion je testerai ta méthode et si ça marche j'opterai pour elle...

Discussions similaires

  1. [Lazarus] Faire glisser une pièce sur un échiquier en l'attrapant
    Par Roland Chastain dans le forum Lazarus
    Réponses: 12
    Dernier message: 04/06/2016, 06h41
  2. bouger une forme sur borland C++builder4
    Par super_dek dans le forum C++Builder
    Réponses: 3
    Dernier message: 03/01/2007, 12h37
  3. Réponses: 4
    Dernier message: 10/11/2006, 10h55
  4. Faire boucler une Macro sur elle même..
    Par volganne dans le forum Access
    Réponses: 5
    Dernier message: 02/06/2006, 11h13
  5. Faire bouger une baballe
    Par mael94420 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 07/01/2006, 10h33

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