RBL JAVA Tips
Main page
Home
[ Recherche | Home Page | Index Java tips ]


PrevRetour IndexNext
  • But...
    Présentation des notions de base pour lire des images dans une applet ou une application sans recevoir de messages d'erreurs.

  • La lecture dans une applet...
    tipsImg1.java : Télécharger le source ou Voir l'applet
     // Importations
     import java.awt.Graphics ;
     import java.awt.Image ;
    
     public class tipsImg1 extends java.applet.Applet {
         // Variables
         Image img ;                 // ...
    
         // Initialisation de l'applet
         public void init() {                       // Methode init()
             // Lecture de l'image
             // Le getCodeBase() permet de specifier l'emplacement
             //    de l'image relativement au code de l'applet
              img =  getImage(getCodeBase(), "./photo.gif") ;
         }
    
         // Dessiner l'applet
         public void paint(Graphics g) {             // Methode paint()
              // On dessine l'image a la position 5/10
              g.drawImage(img, 5, 10, this) ;
         }
      }
    Ce code vraiment très simple vous permet de lire un fichier image (gif dans l'exemple) et de l'afficher. Il est possible que l'applet affiche un NullPointerException car on lui demande d'afficher l'image sans savoir si elle est entièrement chargée.

  • Ajout d'un MediaTracker...
    tipsImg2.java : Télécharger le source ou Voir l'applet
     // Importations
     import java.awt.MediaTracker ;
    ....
         public void init() {   
              MediaTracker trk = new MediaTracker(this)  ;
    
             // Lecture de l'image
              img =  getImage(getCodeBase(), "./photo.gif") ;
    
             // Ajout de l'image dans le MediaTracker
              trk.addImage(img, 0) ;
    
             // Attendre le chargement
              try {
                  trk.waitForAll() ;
              } catch (InterruptedException e) {
                    // Traitement de l'erreur
              }
         }
    ...
    Si en execution "locale" ou avec de petites images nous ne voyons pas de différence, il suffit d'essayer de charger une image importante (ou plusieurs) pour que cela supprime l'erreur "NullPointerException".

  • Passage à une application...
    tipsImg3.java : Télécharger le source ou tipsImg3.zip l'application     (backup)
    Je ne detaille que les modifications propres à la gestion des images
     // Importations
     import java.awt.Toolkit ;
    ....
         public void init() {   
              MediaTracker trk = new MediaTracker(this)  ;
             // Recuperation du Toolkit de default de l'application
              Toolkit toolkit = Toolkit.getDefaultToolkit()  ;
    
             // Lecture de l'image
             // On doit passer par le toolkit dans le cas d'une l'application
              img =  toolkit.getImage("./photo.gif") ;
    
             // Ajout de l'image dans le MediaTracker
              trk.addImage(img, 0) ;
    
             // Attendre le chargement
              try {
                  trk.waitForAll() ;
              } catch (InterruptedException e) {
                    // Traitement de l'erreur
              }
         }
    ...
    Vous pouvez remarquer que la seule modification pour lire une image dans une application concerne l'utilisation du Toolkit, et la suppression du getCodeBase().




Copyright © 1996..2003, BERTHOU. Tous droits réservés.
Dernière modification le 03 Mars 2003 18H20

C.N.I.L.
n° 707410