先贴我自己写的代码 
public class MyPanel extends Panel {
private static Toolkit tk = Toolkit.getDefaultToolkit();
private static Image image =  tk.getImage(MyPanel.class.
getClassLoader().getResource("Images/背景1.PNG"));
private static boolean init = false;

public MyPanel(){

}

public void paint(Graphics g){
//System.out.println("======");
//if(init == false){
//g.drawImage(image,0,0,null);
//init = true;
//}
g.drawImage(image, 0, 0, null);
}
}
注释的地方满足是修改过了的 但是还是有错每次当我运行的时候图片都不会显示 但是最小化了后 图片就显示了有没有什么办法是Frame 一产生的时候就显示呢 还有就是我拿一个我用图片做背景 Lable不是透明的 是空的 

解决方案 »

  1.   

    下载影像的方法换一下。
    import java.awt.*;
    import javax.imageio.*;
    import java.io.*;
    import javax.swing.*;
    public class MyPanel extends JFrame { 
    private static Image image; 
    private static boolean init = false; 
    public static void main(String args[]) {
    MyPanel mp = new MyPanel();
    mp.setVisible(true);
    mp.setSize(400,400);
    mp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public MyPanel(){ 
    try {
    image = ImageIO.read(new File("j2me.jpg"));
    }catch (Exception e) { }} public void paint(Graphics g){ 
    g.drawImage(image, 0, 0, null); 


      

  2.   

    Label 能做成透明的吗??
      

  3.   

    Toolkit在加载图像的时候是异步的,也就是它使用了另一个线程来加载图像。为了正确的显示你就需要在程序里做同步。
      

  4.   

    希望以下实验,对你有帮助
    Jlabel 可以带图标(ImageIcon)。 我将影像 "earth" 的黑颜色背景改成透明的背景, 制成另一个影像(存为 png 格式)。
    然后用这两个影像分别制成两个标签。结果显示,有透明背景的图标,在某种意义上,让标签部分(背景部分)成为透明。标签文字部分的背景,尚无法搞成透明。import java.awt.*;
    import javax.swing.*;
    public class transparent extends JFrame { private JLabel label1, label2;
    private static boolean init = false; public static void main(String args[]) {
    transparent mp = new transparent();
    mp.setVisible(true);
    mp.setSize(400,400);
    mp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }
    public transparent(){ 
    super("实验透明标签");
    Container container = getContentPane();
    container.setLayout(new FlowLayout()); Icon noTrans=new ImageIcon("earth.jpg");
    Icon Trans = new ImageIcon("earth.png");
    label1 = new JLabel("不透明");
    label2 = new JLabel("透明");
    label1.setIcon(noTrans);
    label2.setIcon(Trans);
    container.add(label1);
    container.add(label2);

    }