Choisir l'image de l'étudiant à afficher dans la liste et cocher le format.
Objectifs : Le but de ce TD est de se familiariser à l’utilisation simple d’une applet en affichant des images
- pour réaliser ce TD vous avez besoin :
- de connaître les types simples (entiers, réels, ...) et les instructions de base du langage JAVA
- De connaître le principe de base des classes de la programmation objet.
- Tous les diagrammes de classes sont réalisés avec Jude.
Thème : Applet et Image
But : Réaliser l’applet suivante
Le choix de l’image à afficher se fait dans une List à gauche. Les images seront sur le disque dur local. Il sera possible de choisir entre l’image totale ou un agrandissement.
Le choix sera écouté par un ItemListener (interface) qui réaffichera l’image.
Afficher une image dans une applet
URL
Du fait des limitations de sécurité, une applet ne peut pas accéder au disque dur de l'ordinateur client sur lequel elle s'exécute.
Le fichier image qu'elle doit afficher doit être téléchargé à partir d'une URL.
Pour Java les URL sont représentées par la classe URL contenue dans le package java.net. On peut obtenir l'URL d'une applet en utilisant sa méthode
getCodeBase().
Téléchargement
La classe
Image permet de représenter une image en mémoire. On peut créer une instance de cette classe en téléchargeant un fichier image au format gif ou jpg.
Cette opération est réalisée par la méthode
getImagequi peut prend deux formes :
- public Image getImage(URL url)
- public Image getImage(URL url, String name)
Dans la première forme on donne en paramètres une URL complète, dans la seconde on donne une URL de base et un chemin relatif sous forme de chaîne de caractères.
Si le fichier image se trouve dans le même dossier que l'applet on créera un objet img de la classe Image en écrivant :
img=getImage(getCodeBase(),"monImage.jpg");
Dessin de l'image
L'affichage d'une image se fait comme tout affichage à partir d'un objet de la classe Graphics avec la méthode drawImage. Celle-ci peut prendre plusieurs formes parmi lesquelles on trouve :
boolean drawImage(Image img, int x, int y, ImageObserver observer);
L'image est affichée à la position de coordonnées (x,y) avec sa taille d'origine. L'objet observer doit implémenter l'interface ImageObserver, c'est le cas pour les descendants de la classe Component, donc pour l'applet ou un Canvas.
On pourra donc désigner l'applet comme paramètre observer. Son rôle est de veiller à ce que le processus d'affichage se termine correctement.
boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer);
L'image est affichée à la position de coordonnées (x,y) avec une largeur égale à width et une hauteur égale à height
Exemple:
Ecrivons une applet qui affiche une image titrée d'un fichier dont le nom est passé en paramètre.
public class affimg extends JApplet {
Image img;
public void init(){
img=null;
String s=getParameter("image");
if (s!=null) {
img=getImage(getCodeBase(),s);
}
}
public void paint(Graphics g){
if (img!=null)
g.drawImage(img,0,0,this);
}
}
o Créer d’abord l’applet et ça méthode init qui permet d’initialiser la représentation graphique de l’IHM
o A l’aide du diagramme de classes suivant, compléter le programme.