尝试使用ImageIO加载图像时出现java错误。阅读
在搜索类似问题后,我想问以下问题:
我试图从Google静态地图加载一张图片,但是我得到了这个错误:Exception in thread "main" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(Unknown Source)
at MapPicturePanel.main(MapPicturePanel.java:18)
以下是该类的完整代码:
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.*;
public class MapPicturePanel {
private JScrollPane getContent(BufferedImage image) {
ImageIcon icon = new ImageIcon(image);
JLabel label = new JLabel(icon);
label.setHorizontalAlignment(JLabel.CENTER);
return new JScrollPane(label);
}
public static void main(String[] args) throws IOException {
String path = "http://maps.googleapis.com/maps/api/staticmap?center=37.426616,-122.176380&zoom=14&size=800x600&scale=2&format=jpg&maptype=hybrid&sensor=false";
URL url = MapPicturePanel.class.getResource(path);
BufferedImage image = ImageIO.read(url);
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setContentPane(new MapPicturePanel().getContent(image));
f.setSize(800,800);
f.setLocation(200,200);
f.setVisible(true);
}
}
# 1 楼答案
您正在尝试在类路径中查找资源(这就是Class.getResource所做的)。但看起来您希望从外部url加载图像
就这么做吧