Ton machin essaie d'afficher l'image alors qu'elle est pas finie de charger, c'est pour ça, qu'il plante plusieurs fois avant d'y arriver...
Le code suivant est celui d'une classe qui affiche bêtement une image....
Tu pourrais peut être utiliser ça pour dessiner ton fond, puis ajouter des drawImage(mapetiteimage, posX, poxY);,
dans la méthode paint(Graphics) pour dessiner tes petites images dessus..Ca devrait marcher, non?
import java.awt.*;
import java.net.URL;
public class ImageLabel extends Canvas {
private Image image;
public ImageLabel(URL imageurl) {
super();
image = Toolkit.getDefaultToolkit().getImage(imageurl);
MediaTracker tracker = new MediaTracker(this);
tracker.addImage(image, 0);
try {
tracker.waitForAll(1000);
} catch(InterruptedException e) {
}
setSize(new Dimension(image.getWidth(this), image.getHeight(this)));
}
public int getImageWidth() {
return image.getWidth(this);
}
public int getImageHeight() {
return image.getHeight(this);
}
public void paint(Graphics g) {
g = getGraphics();
g.drawImage(image, 0, 0, this);
}
}