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

Java Discussion :

Supprimer image d'un canevas


Sujet :

Java

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 6
    Par défaut Supprimer image d'un canevas
    Bonsoir tout le monde !

    Je suis actuellement en train de réaliser un jeu d'echec en Java seulement je rencontre un problème. (Je suis toute débutante dans ce langage)

    J'ai presque fini, j'ai réussi à faire l'affichage. Chaque case de mon plateau d'échec est représenté par un canvas, noir ou blanc, auquel j'ai associé une image (.png) lorsqu'une piece se trouve sur une de ces cases.

    J'arrive à déplacer les pièces, c'est-à-dire que lorsque je clique sur la piece à deplacer et que je clique ensuite sur la case où je veux qu'elle se déplace l'image de la pièce se réaffiche bien.

    En revanche, l'image de la pièce reste toujours à l'ancien endroit où elle était.
    Je crois avoir tout essayé je n'en peux plus ! Comment faire pour qu'elle ne s'affiche plus lorsque la pièce est déplacé ?

    Est-ce qu'il y a une méthode pour supprimer une image associé à un canvas ?


    Voilà ce que j'ai en ce qui concerne les images dans la classe "Case"

    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
    public void associeImage(String s)
       {
           if (s != "")
           this.image = (new ImageIcon(s)).getImage ();
           else
           {
           this.image = null ;
           repaint () ;
           }
       }
     
       public void paint (Graphics g) 
       { 
           if (image != null) 
           g.drawImage (image,0,0,null) ;
           else
           g.drawImage(null,0,0,null);
       }

    Et lorsque j'affiche le plateau, pour faire apparaitre les images des pièces jai le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    for (int i=0;i<8;i++)
           {
               for (int j=0;j<8;j++)
               {
                   if (this.ec.donnet(i,j) != null)
                   {
                   String s = this.ec.donnet(i,j).quelleImage();   //la methode                quelleImage() se trouve dans la classe "Piece" et renvoi le titre de l'image (ex : "roiNoir.png")
                   this.t[i][j].associeImage(s);     // t = tableau de case 
                   }
                }
            }
    Si quelqu'un pourrait m'éclairer j'en serais soulagée, ça fait des jours que j'essaye plein de choses et rien n'y fait !

    Merci d'avance

  2. #2
    Membre très actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2011
    Messages : 181
    Billets dans le blog
    1
    Par défaut
    Slt.
    Il faut modifier la méthode paint (graphics) du premier composant qui contient l'image, et sur le quel elle reste affichée, ça dépent de comment tu la définie.
    Bon courage.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 6
    Par défaut
    Merci pour ta réponse, mais justement pour la modifier il faut utiliser quoi ?
    J'ai essayé pas mal de choses et ça ne marche jamais je dois mal m'y prendre.

  4. #4
    Membre très actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2011
    Messages : 181
    Billets dans le blog
    1
    Par défaut
    Pour la partie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (image != null) 
           g.drawImage (image,0,0,null) ;
    else
           g.drawImage(null,0,0,null);
    Il suffi de mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g.drawImage (image,0,0,null) ;
    Le code de la méthode paint du Container initial STP.
    Merci

  5. #5
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Citation Envoyé par aurore08 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
       public void paint (Graphics g) 
       { 
           if (image != null) 
           g.drawImage (image,0,0,null) ;
           else
           g.drawImage(null,0,0,null);
       }
    Si quelqu'un pourrait m'éclairer j'en serais soulagée, ça fait des jours que j'essaye plein de choses et rien n'y fait !
    Lorsque null est passé à drawImage, il est probable que rien ne soit fait (en gros, il y a un if(img==null) return; dans le code de drawImage). Bref, pour que ca marche, il faudrait faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
       public void paint (Graphics g) 
       { 
           if (image != null) 
           g.drawImage (image,0,0,null) ;
           else
           super.paint(g);
       }

  6. #6
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 6
    Par défaut
    Merci, j'ai essayé mais ces maudites images sont toujours là

    Je demanderais à ma prof demain si elle peut me dépanner je commence à désespérer.
    Et étant donné que c'est la première fois que j'utilise du Java je ne sais pas très bien me servir des méthodes pour afficher des images etc.

    Enfin si vous avez d'autres idées elles sont les bienvenues.

    Merci en tout cas d'avoir pris un peu de votre temps pour me répondre

  7. #7
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Chez moi, ca marche. Tu peux poster un peu de code ?

  8. #8
    Membre très actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2011
    Messages : 181
    Billets dans le blog
    1
    Par défaut
    Je m'excuse, j'avais pas remarqué que le déplacement se fesait de case en case, du coup, c'est le même code.
    Mes excuses.

  9. #9
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 6
    Par défaut
    C'est bon ça fonctionne !
    C'est dans mon code lors de l'affichage j'avais mis une instruction en trop qui n'allait pas et donc en la retirant ça a fonctionné.

    Merci pour votre aide

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

Discussions similaires

  1. Supprimer image d'un E-Mail HTML à réception
    Par Ishida dans le forum Outlook
    Réponses: 1
    Dernier message: 05/09/2008, 10h32
  2. supprimer image sur powerpoint avec macro
    Par Mati68 dans le forum VBA PowerPoint
    Réponses: 0
    Dernier message: 14/12/2007, 10h34
  3. Récupérer la taille d'une image dans un canevas
    Par Exca dans le forum Tkinter
    Réponses: 3
    Dernier message: 01/12/2006, 12h23
  4. Réponses: 4
    Dernier message: 16/12/2005, 22h52
  5. [debutant]supprimer image
    Par F.F. dans le forum C++Builder
    Réponses: 6
    Dernier message: 09/07/2004, 10h24

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