我在使用 ImageIcon().GetImage() 时遇到问题
奇怪的是,它有时可以工作并显示带有地图的窗口,而其他时候则不能。它也可以完美地在其他计算机上运行,但不能在我的计算机上运行!
我已经尝试了一切,重新安装 Java,重新安装 IntelliJ,还禁用了我的防火墙,但无济于事。我还在 C# 中编写了一个类似的程序,它运行良好,这让我相信这不是权限错误。我还在带有板载显卡的基本 Windows XP 系统上对其进行了测试,该显卡也可以完美运行。
这是我的代码:
public class main {
public static void main(String[] args) {
System.out.println("Running main..");
try
{
URL url = new URL("http://maps.googleapis.com/maps/api/staticmap?center=-33.80382155278416,18.567184266922002&zoom=17&size=1024x1024&maptype=hybrid&sensor=false&format=png&key=AIzaSyCVnp9iTXRSS3ZE5FjzF7uNZavazWhLko4");
Image img=new ImageIcon(url).getImage();
System.out.println("INFO :"+img);
new ImageFrame(img);
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static class ImageFrame extends JFrame{
public ImageFrame(Image img){
setPreferredSize(new Dimension(540, 480));
setaImg(img);
ImagePanel somePanel = new ImagePanel(540, 480);
add(somePanel);
setVisible(true);
}
private Image aImg;
public Image getaImg() {
return aImg;
}
public void setaImg(Image aImg) {
this.aImg = aImg;
}
public class ImagePanel extends JPanel{
public ImagePanel(int width, int height){
setPreferredSize(new Dimension(width, height));
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(getaImg(), 0, 0, null); // see javadoc for more info on the parameters
}
}
}
}
我已经通过调试器运行了它,它停在这一行:
Image img=new ImageIcon(url).getImage();
但没有错误,它只是永远挂起。
我完全不明白为什么它不能在我的系统上运行,而且只能在我的系统上运行。任何帮助将不胜感激。