17. september 2001 - 09:13
#1
Der er ikke nogen standard metoder til det. Du bliver nødt til (via arv) at lave den containertype, som du skal bruge.
Et eksempel er:
public class Baggrund extends JPanel{
ImageIcon img;
/** Creates new Baggrund */
public Baggrund(ImageIcon ic) {
super();
setOpaque(false);
img = ic;
}
public void paint(Graphics g) {
if (img.getImageLoadStatus() == MediaTracker.COMPLETE)
g.drawImage(img.getImage(), img.getIconWidth(), img.getIconHeight(), img.getImageObserver());
super.paint(g);
}
}
du kan selvfølgelig skrive det om, så den bedre ligner en JPanel component og mere fail-safe, men dette virker som en start. Husk dog på, at din JPanel er transparent, hvilket vil sige at andre billeder nedenunder vil skinne igennem. For at undgå det hvis nødvendig, skal man bare lægge det transparente panel ind i et ikke transparent.
17. september 2001 - 18:39
#3
Pkt 1 det virker.
Pkt2 hvis du extender component, har du ikke en container, uden at skulle lave resten af hierarkiet også.