代码如下:
import javax.imageio.*;//for ImageIO.read 
import java.awt.*;//for JFrame and JLabel etc 
import java.awt.image.BufferedImage;
import javax.swing.*;//for JFrame and JLabel etc 
import java.net.*;//for URL 
import java.io.*;//for catch (IOException e),File,InputStream, BufferedInputStream,and FileInputStream ect 
public class HelloJava{ 
   public static void main (String[] args){ 
   BufferedImage image = null; 
    try { 
        // Read from a file 
        File sourceimage=new File("100_3823.JPG");  //图片要与HelloJava.java同在一目录下 
        image=ImageIO.read(sourceimage); 
     
        // Read from an input stream 
       // InputStream is=new BufferedInputStream( 
          // new FileInputStream("100_3804.JPG"));  //图片要与HelloJava.java同在一目录下 
       // image=ImageIO.read(is); 
           
    } catch (IOException e) { 
    } 
     
    // Use a label to display the image 
    JFrame frame=new JFrame(); 
    JLabel label=new JLabel(new ImageIcon(image)); 
    frame.getContentPane().add(label,BorderLayout.CENTER); 
    frame.pack(); 
    frame.setVisible(true);  
    //关闭窗口--退出调试 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     } 

报错如下:
Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at HelloJava.main(HelloJava.java:25)
即 JLabel label=new JLabel(new ImageIcon(image))一句出错,怎么回事啊,应该怎么修改啊 ?

解决方案 »

  1.   

     image = ImageIO.read(sourceimage);是实际出现例外的句子,lz catch了异常但没有打印出异常
      

  2.   

    另,图片文件一定要放在classpath中(确定源文件所在目录里,在classpath中么?)
      

  3.   

    new javax.swing.ImageIcon(getClass().getResource("/image.png"));// 斜杠是你的工程的根目录,这种方式,即使你生成jar文件,你的图片也不出问题,不要用你的那种方式读取图片!
      

  4.   

    MARK
      

  5.   

    File sourceimage=new File("100_3823.JPG");  
    这一句有问题,你写的是相对路径,应该写成
    File sourceimage=new File("\\src\\...\\100_3823.JPG");  
    这其中的...是假设中间还有很多的文件.
    你试试行不行.
    其实最好还是3楼的那种写法.因为程序最后还是要打包的,到时候就找不到路径了.还是用下面的方法.new javax.swing.ImageIcon(getClass().getResource("/image.png"));不过在运行之前千万要记得生成dist文件.要不然系统就会找不到路径,生成dist文件的方法:用netbean开发的话,只要选种你写的项目(工程),点击右键,选择"生成"属性就行了,然后就可以编译,运行了