Dans cette fiche...

<Retour>

Description de l'applet

Difficulté : Résultat
Cette applet charge et affiche une image.

La gestion de l'image est pour l'instant la plus simple possible.

Votre navigateur n'est pas compatible Java !

Listing de l'applet

// --------------------------------------------------
// Image1
// Chargement d'une image en Java
// --------------------------------------------------
import java.applet.*;
import java.awt.*;
public class Image1 extends Applet
{
	// Buffer image
	Image im;
	
	// --------------------------------------------------
	// INITIALISATION DE L'APPLET
	// --------------------------------------------------
	public void init()
	{
		// Définir le fond de l'applet en blanc
		setBackground(Color.white);
		// Chargement de l'image
		im = getImage(getCodeBase(), "smiley.gif");
	}
	// --------------------------------------------------
	// AFFICHAGE
	// --------------------------------------------------
	public void paint(Graphics g)
	{
		// On dessine l'image en x=0 et y=0
		g.drawImage(im, 0, 0, this);
		// Idem, en x=130 et y = 20
		g.drawImage(im, 130, 20, this);
	}
}

Le listing en détail...

// Buffer image
Image im;
On crée un objet de type Image, qui servira à stocker et à manipuler l'image.
 
// Chargement de l'image
im = getImage(getCodeBase(), "smiley.gif");
Charger l'image appelée smiley.gif, et l'affecter à l'objet im.
Le chemin d'accès à l'image est donné par la fonction getCodeBase(), qui renvoie l'adresse Internet de l'applet.
En clair, getCodeBase() donne l'endroit (l'URL) où est stockée l'applet.
Ceci implique donc que l'image GIF a été enregistrée au même endroit que l'applet Image1.class.

On aurait pu également enregistrer l'image au même endroit que la page Web (la page HTML).
Dans ce cas, on aurait utilisé la syntaxe suivante :

im = getImage(getDocumentBase(), "smiley.gif");

On peut également vouloir charger une image située n'importe où sur le disque (et même n'importe où sur le Web !).
Nous verrons ce cas plus tard.

 
// On dessine l'image en x=0 et y=0
g.drawImage(im, 0, 0, this);
// Idem, en x=130 et y = 20
g.drawImage(im, 130, 20, this);
La méthode drawImage() permet de tracer une image. Elle est très proche de la méthode drawString(), qui permet de tracer une chaîne de caractères.
Dans notre exemple, l'image est affichée 2 fois.

La méthode drawImage() reçoit 4 paramètres :

  • la variable qui sert à stocker l'image,
  • l'abscisse x et l'ordonnée y où il faut tracer l'image (sachant que le coin supérieur gauche de l'applet vaut 0,0),
  • un objet ImageObserver (qui sera expliqué plus tard). En général, l'objet this suffit.

A noter que l'image peut être affichée alors que son chargement n'est pas encore terminé. Le lecteur de la page Web voit alors l'image s'afficher morceau par morceau, ce qui peut servir à le faire patienter !
Nous verrons plus tard comment afficher une image seulement lorsque son chargement est terminé.

Intégration de l'applet dans la page

Voici le code qui a été utilisé dans cette page HTML pour faire apparaître l'applet :

<applet code="Image1.class" width=250 height=90>
Votre navigateur n'est pas compatible Java !
</applet>

Pour plus de précisions sur l'intégration d'une applet, cliquez ici.