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