Pui utilizzare un JPanel ridefinendo il paintComponent dove disegni l'immagine a basso livello.
Poi usi il metodo setImage per settare l'immagine che vuoi tu:
codice:
public class RefreshPanel extends JPanel {
private Image img;
public RefreshPanel() {
}
private void setImage(Image image) {
try {
this.img = image;
MediaTracker track = new MediaTracker(this);
track.addImage(img, 0);
track.waitForID(0);
} catch (Exception e) {
e.printStackTrace();
}
repaint();
}
protected void paintComponent(Graphics g) {
setOpaque(false);
g.drawImage(img, 0, 0, null);
super.paintComponent(g);
}
}
Il MediaTracker blocca l'esecuzione fino a quando l'immgine è effettivamente caricata in memoria. Poi per caricare un oggetto Image puoi utilizzare il Toolkit di sistema:
codice:
String path = "";//percorso
Image img = Toolkit.getDefaultToolkit().createImage(path);
Questo è un possibile metodo, si puo fare in tanti altri modi