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();
しかし、エラーがなければ、永遠にハングします。
なぜそれが私のシステムで機能せず、私のシステムだけで機能しないのかについて、私は完全に混乱しています。どんな助けでも大歓迎です。