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

2D Java Discussion :

Probleme d'affichage d'images


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2005
    Messages : 25
    Par défaut Probleme d'affichage d'images
    Bonjour,

    je tourne en rond depuis un moment, mon probleme c'est que j'ai des images qui s'affiche en general toutes mais parfois que certaines et parfois meme aucune.

    Je pense avoir localisé une possible source du probleme, apparement quand je travaille sur des images dans les constructeurs des Panels ou de l'applet de depart il aime pas. Est ce que quelqu'un peut me confirmer?
    On dirait que ca vient de ma nouvelle BufferedImage.

    Je met le bout de code qui semble pose probleme répété 3 fois et avant je recupere d'autre image mais sans travailler dessu ce qui posait pas de probleme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		img = new BufferedImage(28,28,BufferedImage.TYPE_INT_ARGB_PRE);
    		img.getGraphics().drawImage(getImage(getDocumentBase(),"ressources/ui/button1.gif"),0,0,27,27, 0,0,27,27,null);
    j'ai une unique image avec 3 etats d'un bouton dessu donc je veux recuperer dans un tableau d'image les 3 images séparées.
    J'avoue ne pas trop avoir compris ce que fait le parametre ImageObserver que j'ai ici a null mais je vous rassure a this ca marche pas mieux.

    De plus les images qui posait aucun probleme avant s'affichent aleatoirement apres ...

    Dernier point qui peut etre important je sais pas les images sont destiné a etre affichées dans d'autre panel, la c'est que le debut j'initialise, peut etre que le ImageObserver doit etre l'objet qui affichera l'image?


    PS :
    En ecrivant le post j'ai pensé au dernier point j'ai donc bien fait pointer le parametre ImageObserver en gardant mon image complete je la divique au moment de la creation de ma classe customButton. Ca marche presque parfaitement mais le presque me gene une fois sur 10 j'ai qd meme un mauvais affichage.

  2. #2
    Membre chevronné Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Par défaut ImageObserver
    Salut! je pense que tu devrais garder le paramêtre ImageObserver activé sur un composant. Si tu ne fais pas de rafrachissement en manuel (validate(), update(), repaint(), etc.), alors il est utile. C'est une reference en mémoire pour les images.
    Ce que je fais, j'active un composant virtuel. par ex.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    JLabel virtuel = new JLabel();
    g. drawImage((Image)bimg, null, (ImageObserver)virtuel);
    Et ça fonctionne en général. Tu peux ajouter encore l'option double-buffering sur le panel conteneur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    JPanel panel = new JPanel(true);
    panel.getContentPane().getGraphics().drawImage((Image)bimg, null, (ImageObserver)virtuel);
    Citation Envoyé par Liiscar
    Bonjour,

    (...)

    Dernier point qui peut etre important je sais pas les images sont destiné a etre affichées dans d'autre panel, la c'est que le debut j'initialise, peut etre que le ImageObserver doit etre l'objet qui affichera l'image?


    PS :
    En ecrivant le post j'ai pensé au dernier point j'ai donc bien fait pointer le parametre ImageObserver en gardant mon image complete je la divique au moment de la creation de ma classe customButton. Ca marche presque parfaitement mais le presque me gene une fois sur 10 j'ai qd meme un mauvais affichage.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2005
    Messages : 25
    Par défaut
    merci je vais tester ca mais avant je voulais savoir plus sur cette imageObserver. Ton objet virtuel tu t'en sert pour toutes tes images le meme? Et qu'est ce que tu en fais de ton objet virtuel tu gardes un poiteur dessu dans la frame ou applet de depart et c'est tout?

    Parceque ce que je pense avoir mieux compris tu parles des cas d'actualisation de la page non manuel, et je vois que t'utilises le contexte graphique du contentPane donc je me demande si ta technique consisterait pas a ajouter au content pane ton JLabel vide donc qui s'affichera pas et l'actualisation de la page j'imagine qu'il parcours tout les elements du contentPane pour faire un paint() ou update() dessu et le Jlabel etant l'observer il va appeller lui meme le paint() des images qu'il garde.
    Dans ce cas il faudrait mieux que ca soit le conteneur directement attaché a l'image et pas comme mon cas ou j'ai plusieurs imbriquements le conteneur de depart ?

    Dernier point voir si j'ai compris si ca se passe comme j'ai expliqué alors dans quelle methode l'objet que l'on a designé comme observer appelle l'actualisation des images qu'il observe. La logique serait dans le paint() voir update() mais je redefini ces 2 methodes de mes panel parcequ'ils utilisent tous le double buffering et que j'ai une image background sur tous. Comme je fais pas de super() sur le paint() et surement pas sur l'update() (pour eviter d'effacer) il se pourrait que des images soient pas bien affiché car leur observeur ne les relance plus? Et donc le probleme viendrait de la.

    CQFD d'ou un observer virtuel sur lequel je suis certain de pas redefinir ces Methodes.

    J'aimerais bien voir le code initiale des classes pour la methode Paint() savoir ce que je perd en redefinissant. Je devrais laisser un super.paint() peut etre.

    Utiliser les bibliotheques c'est pratique mais j'aime bien maitriser ce qui se passe exactement eviter ce genre de soucis. Surtout que j'ai refait certain classe perso genre button et des barre de navigation. Je suis en full awt rien en swing comme c'est web j'essai d'avoir une meilleur compatibilité sur les navigateurs mais je dois reinventer la roue pour des petites fonctionnalités qui y sont pas (snif les tooltips ) .

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2005
    Messages : 25
    Par défaut
    Je viens de lire qu'il se pourrait aussi comme mon application est web que je laisse pas le temps de se charger aux images.Surtout que j'ai eu aussi ce probleme apres l'ajout de mon image de background plus grosse que les autres.

  5. #5
    Membre chevronné Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Par défaut
    evidemment il fallait garder le pointeur sur l'"observer". Autrement ça n'a plus de sens. Et c'est pareil pour chaque image, tu gardes le meme "observer" virtuel.
    Je n'ai jamais essayé Java dans une application web. ça donne vraiment un bon rendu graphique et en vitesse parait-il.

Discussions similaires

  1. [Lazarus] Problème d'affichage d'images avec stretch
    Par Bernard B dans le forum Lazarus
    Réponses: 1
    Dernier message: 05/09/2006, 18h21
  2. [GD] probleme d'affichage d'image
    Par Funattitude dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 07/08/2006, 09h05
  3. Probleme d'affichage d'image dans une fenetre
    Par cgregueusse dans le forum MFC
    Réponses: 1
    Dernier message: 03/08/2005, 11h08
  4. [CR.NET] Probleme d'affichage d'image
    Par ahervieux dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 25/06/2005, 14h06
  5. Probleme d'affichage d'image
    Par nenoeil dans le forum ASP
    Réponses: 2
    Dernier message: 03/06/2005, 11h26

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