 |
Forum |
|
|
Réagissez
dans les forums
de JDN Développeurs
|
Pour cette troisième entrée dans notre série
"coup de pouce", nous allons aborder le chargement
asynchrone d'une image. Notre but : afficher dans une application
Java une image présente dans le dossier de celle-ci
- en l'occurrence nous allons afficher le logo de JDN Développeurs...

Voici
le code, que nous expliquerons pas à pas page
suivante...
[fichier ChargerImage.java]
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ChargerImage
{
public static void main(String[] args)
{
Fenetre fenetre = new Fenetre();
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fenetre.show();
}
}
class Fenetre extends JFrame
{
public Fenetre()
{
Container leContenant = getContentPane();
leContenant.setLayout(new FlowLayout());
AffichageImage image = new AffichageImage("logo_jdn_developpeurs.gif");
leContenant.add(image);
}
}
class AffichageImage extends Canvas
{
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int largeurEcran = screenSize.width;
int hauteurEcran = screenSize.height;
Image image;
public AffichageImage(String url)
{
image = getToolkit().getImage(url);
prepareImage(image, this);
}
public void paint(Graphics g)
{
g.drawImage(image, 0, 0, this);
}
public boolean imageUpdate(Image image, int info,
int x, int y, int l, int h)
{
if ((info & (WIDTH | HEIGHT)) != 0)
{
setSize(l, h);
getParent().getParent().getParent().getParent().setBounds(
(largeurEcran - l) / 2, (hauteurEcran - h) / 2, l+8, h+32
);
}
if ((info & (ALLBITS)) != 0)
{
repaint();
return false;
}
else
{
return true;
}
}
}
|