Jusqu'au JDK 1.3, le chargement d'une image se faisait en utilisant la méthode getImage de la classe java.awt.Toolkit. On utilisait simultanément la classe java.awt.MediaTracker, un pisteur de médias, pour surveiller le bon chargement des images. Depuis le JDK 1.5, le chargement d'une image est plus simple. Nous présentons donc cette version simple. De notre application résulte la fenêtre représenté ci-dessous :
Le dessin est la superposition de deux images, une image où on peut voir une représentation de la Lune couvrant toute la surface du conteneur et une petite image représentant la Terre. Ces deux images ont un fond transparent.
Voici le code de l'application :
import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Image; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; class IHMImages extends JPanel { private static final long serialVersionUID = 1L; Image lune, terre; PanneauImages() { try { lune = ImageIO.read(new File("lune.gif")); terre = ImageIO.read(new File("world.gif")); } catch(IOException exc) { exc.printStackTrace(); } setPreferredSize(new Dimension(200, 200)); setBackground(Color.WHITE); } public void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(lune, 0, 0, getWidth(), getHeight(), this); g.drawImage(terre, 30, 30, this); } } public class AfficheImage { public static void main(String[] arg) { JFrame fenetre = new JFrame(); fenetre.setContentPane(new IHMImages()); fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); fenetre.pack(); fenetre.setLocation(100, 100); fenetre.setVisible(true); } }
© Irène Charon, Télécom ParisTech 20011