package amVIP;import java.awt.*; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import java.awt.BorderLayout; 
import javax.swing.JLabel; 
import javax.swing.ImageIcon; class MainFrame extends JFrame { 
    JPanel contentPane; 
    JLabel imageLabel = new JLabel(); 
    JLabel headerLabel = new JLabel();     public MainFrame() { 
        try { 
            setDefaultCloseOperation(EXIT_ON_CLOSE); 
            contentPane = (JPanel) getContentPane(); 
            contentPane.setLayout(new BorderLayout()); 
            setSize(new Dimension(400, 300)); 
            setTitle("Your Job Crashed!"); 
            // add the header label 
            headerLabel.setFont(new java.awt.Font("Comic Sans MS", Font.BOLD, 16)); 
            headerLabel.setText("  Your job crashed during the save process!"); 
            contentPane.add(headerLabel, java.awt.BorderLayout.NORTH); 
            // add the image label 
            ImageIcon ii = new ImageIcon(this.getClass().getResource("snoopy_dancing.gif")); 
            //上句出错。我不知道this.class是什么意思,指的是本类MainFrame吗?
            imageLabel.setIcon(ii); 
            contentPane.add(imageLabel, java.awt.BorderLayout.CENTER); 
            // show it 
            this.setLocationRelativeTo(null); 
            this.setVisible(true); 
        } catch (Exception exception) { 
            exception.printStackTrace(); 
        } 
    }     public static void main(String[] args) { 
        new MainFrame(); 
    } }

解决方案 »

  1.   

    这里的ImageIcon是图片的对象,构造函数里面是图片资源的路径,有两种方式,你的那中是把图片放在工程下面,另外一种直接ImageIcon ii = new ImageIcon("x:\\...\snoopy_dancing.gif); 其中是x:\\...\是你这张图片的绝对路径,就是在哪个盘哪个文件夹
      

  2.   

    没有问题。this在这里指得是 new MainFrame()得到的实例。this.getClass() 相当与MainFrame.class.
    使用getClass().getResource("...") 来获取的资源必须放到classpath下
      

  3.   

    只要把这个'snoopy_dancing.gif'文件和工程打个jar包http://www.java2000.net/p15866
    http://hi.baidu.com/sdfabc027/blog/item/be915cd6045b23d7a044df4a.html
      

  4.   

    .\resources\snoopy_dancing.gif
    .\classes\amVIP\MainFrame.classjava -cp classes;resources MainFrame
      

  5.   

    .\snoopy_dancing.gif
    .\amVIP\MainFrame.classjava -cp . MainFrame
      

  6.   

    java.lang.NullPointerException
    at javax.swing.ImageIcon.<init>(Unknown Source)
    at amVIP.MainFrame.<init>(readGif.java:27)
    at amVIP.MainFrame.main(readGif.java:39)
      

  7.   

    java -cp classes;resources amVIP.MainFrame
      

  8.   

    java -cp . amVIP.MainFrame
      

  9.   

    snoopy_dancing.gif所在的目录也必须使用 -classpath 加进来
      

  10.   

    在你当前项目,选新建一个文件夹,导入snoopy_dancing.gif到此文件夹里。使用 Add Class Folder 把这个文件夹添加进来
      

  11.   


    ImageIcon ii = new ImageIcon(this.getClass().getResource("snoopy_dancing.gif")); 
    替换成
    ImageIcon ii = new ImageIcon("x:/images/snoopy_dancing.gif"); 
    测试通过。
      

  12.   

    但是如果你非要用this.getClass().getResource("a.gif");这个方法的话,你可以吧图片放到如下的路径格式:
    不会贴图,你就凑合看吧。测试也通过。
    amVIP
     |
     -> MainFrame.java
     ->a.gif
      

  13.   

    this.getClass().getResource("snoopy_dancing.gif") 
    =》
    this.getClass().getClassLoader().getResource("snoopy_dancing.gif")
      

  14.   

    你是空指针错误!
    snoopy_dancing.gif所在的目录也必须使用 -classpath 加进来
      

  15.   

    看看我的这篇文章,看能不能帮到你 http://blog.csdn.net/hwlhwj/archive/2009/11/22/4851005.aspx