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

Graphisme Java Discussion :

probleme de cast pour afficher une image


Sujet :

Graphisme Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 54
    Par défaut probleme de cast pour afficher une image
    bonjour,
    alors déjà je ne savais pas si c'est le bon endroit pour ce post alors désolé si ça ne l'est pas.
    Petite présentation de mon programme:
    Mon but est de faire un jeu de type mémo où le but est de trouver les paires d'images. J'ai donc une classe Surface qui hérite de Canvas qui sert de support à tous les éléments qui vont être affichés (boutons, rectangles, textes, images...).
    Et j'ai ma classe Cards dont le but sera d'affecter divers variables notamment le lieu où se trouve l'image (car l'utilisateur pourra choisir quelles images il voudra utiliser et elles seront sauvegardées et lues via FileWriter et File Reader); cette classe contient une méthode paint dont le but est évidament d'afficher l'image sur la surface en question. Après un probléme d'ImageObserver résolu, mon programme ne veut pas se compiler alors que Netbeans ne me détecte pas d'erreurs.
    Je préfére mettre ici mes classes Surface et Cards afin que vous puissiez mieux voir:
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    public class Surface extends Canvas{
       
        public Surface(int width, int height) {
            vector= new Vector();
            vector2= new Vector();
            setSize(width, height);
        }
       
        public void paint(Graphics graphics){
            for(int i=0; i<vector.size(); i++){
                ((Shape)vector.get(i)).paint(graphics);
            }
            ((Cards)vector2.get(0)).paint(graphics);
        }
       
        public void add(Shape data){
            vector.add(data);
            repaint();
        }
       
        public void add(Image img){
            vector2.add(img);
            repaint();
        }
        public void remove(Shape shape){
            vector.remove(shape);
        }
       
       
        private java.util.Vector vector = null;
        private java.util.Vector vector2 = null;
    }
    
    public class Cards {
        public Cards(Surface surface){
           java.awt.Toolkit toolkit = java.awt.Toolkit.getDefaultToolkit();
           Image image= toolkit.getImage("PJ-echelle.gif");
           surface.add(image);
        }
       
        public void paint(Graphics graphics){
            graphics.drawImage(image, 200, 400,null);
        }
        private Image image=null;
    }
    L'erreur est alors la suivante:
    Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: sun.awt.image.ToolkitImage cannot be cast to graphic.Cards
    qui si je comprends bien dit qu'il ne peut pas caster en Cards un ToolkitImage.
    NB: la classe Cards n'est pas finie j'essayer juste d'afficher une image donnée pour voir si ça marche...

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 54
    Par défaut a moitie coriigé
    bonjour,
    j'ai a moitié corrigé à savoir que je n'ai aucune erreur mais mon image ne s'affiche pas...
    pour cela j'ai modifier la classe Cards pour la mettre comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class Cards {
        public Cards(String str){
           java.awt.Toolkit toolkit = java.awt.Toolkit.getDefaultToolkit();//ligne obligatoire pour charger
           Image img= toolkit.getImage(str);//on charge l'image depuis str
           this.image=img;
        }
        
        public void paint(Graphics graphics){
            graphics.drawImage(image, 200, 400,null);
        }
        public Image image=null;
    }
    et j'ai changer la méthode de Surface add comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        public void add(Cards cards){
            vector2.add(cards);
            repaint();
        }
    Donc il ne reste qu'a afficher cette image....

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Il n'est pas recommande d'utiliser ToolKit pour charger des images asynchrone sans controler le tout via un ImageObserver. Pour un chargement directe/synchrone/bloquant, utilise plutot ImageIO a la place.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 54
    Par défaut je vais voir...
    ok merci j'avais trouvé ça sur internet et dans un livre que j'ai mais je vais voir avec imagIO en rentrant chez moi...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 54
    Par défaut toujours pas
    alors là j'y suis presque....enfin...
    déjà je me suis rendu compte que je ne mettait pas les images au bon endroits... maintenant je n'arrive à afficher qu'une seule image:
    j'ai d'abord trouvé une méthode pour changer le logo de la fenêtre et ça marche très bien du coup j'ai fais copié collé sans même changer le nom du fichier et tout marche...
    sauf que quand j'essaie de mettre une autre image, ça ne marche plus, pourtant j'ai tout essayé taille, type, nom ...
    j'utilise la méthode drawImage de java.awt.....
    bizarre non?

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Code ?
    Dire que ca ne marche pas c'est bien trop vague ! Il y a des exceptions ? Rien ne s'affiche ? ...
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

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

Discussions similaires

  1. [Débutant] QReport - Probleme pour affiché une image
    Par microbe83 dans le forum C++Builder
    Réponses: 5
    Dernier message: 07/11/2012, 17h10
  2. probleme pour afficher une image dans une jsp
    Par jean-pierre69380 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 10/06/2012, 12h35
  3. [Base de donnée] BCB6 Probleme pour afficher une image dans un DBGrid
    Par o_live dans le forum C++Builder
    Réponses: 5
    Dernier message: 22/12/2010, 10h07
  4. Réponses: 13
    Dernier message: 23/12/2004, 18h01
  5. Comment faire pour afficher une image ds une dbgrid
    Par totomaze dans le forum Bases de données
    Réponses: 2
    Dernier message: 16/10/2004, 15h31

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