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

Langage Java Discussion :

[Débutant] Chargement d'image


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Par défaut [Débutant] Chargement d'image
    Bonjour a tous. Je debute plus ou moins en java et j'ai a realiser un programme consistant a charger une image dans une base de donnees suivant plusieurs parametres.
    Jusqu'a maintenant, je fais face a 2 grands problemes.
    Le premier vient du fait que mon image se charge, mais qu'elle ne s'affiche pas directement : pour la faire apparaitre, il faut que je retrecisse la fenetre de mon programme dans la taskbar et que je la reagrandisse. C'est apres avoir fait cela que mon image s'affiche.
    Je charge mon image comme suit, ContenantImage1 un JPanel etant suppose etre l'objet ou va s'afficher l'image :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //
    loadPicture("pic.jpg",ContenantImage1);
    paint(graphics);
    //
    Les methodes loadImage et paint sont les suivantes :
    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
     
    public void loadPicture(String URL, JPanel panel)
    {
    Toolkit toolkit = Toolkit.getDefaultToolkit();
    image = toolkit.getImage(URL);
    MediaTracker mediaTracker = new MediaTracker(this);
    mediaTracker.addImage(image, 0);
    try
      {
    mediaTracker.waitForID(0);
      }
    catch (InterruptedException ie)
      {
    System.err.println(ie);
    System.exit(1);
      }
    }
     
    public void paint(Graphics g)
    {
    g.drawImage(image,0,0,null);
    }
    De plus, lorsque j'execute le programme, un message comme suit s'affiche sur le Command Prompt (je compile et execute a travers le command prompt) :

    Exception in thread "main" java.lang.NullPointerException
    at Fenetre.paint(projet02.java:75) c'est la ligne ou j'utilise "g.drawImage"
    at Fenetre.<init>(projet02.java:52) ligne ou il y a "paint(graphics)"
    at projet02.main(projet02.java:83) ligne de mon main.

    J'espere que l'un d'entre vous pourrait m'eclairer sur le non chargement immediat de mon image et/ou sur le message qui s'affiche lorsque j'execute mon programme (la compilation ne pose aucun probleme).
    Merci ^^

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Par défaut
    La méthode paint n'est appelée que quand c'est nécessaire, par exemple quand la fenêtre est redimensionnée ou quand elle est restaurée arpès avoir été minimisée.
    Pour forcer un réaffichage, tu peux appeler repaint().

    Sinon pour ton 2e problème il faut que tu fasses le test image != null je pense

  3. #3
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Bonsoir,

    Pour ton premier problème utilise ImageIO.read("chemin/vers/image") plutôt que toolkit.getDefaultToolkit...

    @+


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Par défaut
    Merci. J'ai modifie les arguments dans la methode drawImage en mettant "this" pour l'ImageObserver a la place de "null". L'image se charge une fois qu'elle est chargee, pas besoin de retrecir et reagrandir la fenetre XD

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

Discussions similaires

  1. [HTML] [Débutant] Tableau et images
    Par skandas dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 07/06/2005, 01h01
  2. [Image][Débutant]Compression d'images JPG en Java ?
    Par joe.satriani dans le forum 2D
    Réponses: 3
    Dernier message: 30/01/2005, 16h34
  3. [JLabel] Chargement d'image dans une JFrame
    Par mr.t dans le forum Composants
    Réponses: 10
    Dernier message: 27/01/2005, 18h32
  4. Réponses: 21
    Dernier message: 29/04/2004, 15h45
  5. Réponses: 19
    Dernier message: 26/04/2004, 08h54

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