2013-07-11 3 views
8

여기 내 코드입니다. 컴파일 오류가 없지만 원하는 출력을 얻지 못하고 있습니다.지도가 나타나지 않습니다. 내 JPanel에서 Google 정적지도를 열고 로컬 드라이브에 저장하려고합니다. 이것은 내가 사용하고있는 코드입니다. 친절하게 내가 어디로 잘못 가고 있는지 안내합니다.Google Map in Java 스윙

try { 
     String imageUrl = 
       "http://maps.google.com/staticmap?center=40,26&zoom=1&size=150x112&maptype=satellite&key=ABQIAAAAgb5KEVTm54vkPcAkU9xOvBR30EG5jFWfUzfYJTWEkWk2p04CHxTGDNV791-cU95kOnweeZ0SsURYSA&format=jpg"; 
     String destinationFile = "image.jpg"; 
     str = destinationFile; 
     URL url = new URL(imageUrl); 
     InputStream is = url.openStream(); 
     OutputStream os = new FileOutputStream(destinationFile); 

     byte[] b = new byte[2048]; 
     int length; 

     while ((length = is.read(b)) != -1) { 
      os.write(b, 0, length); 
     } 

     is.close(); 
     os.close(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
     System.exit(1); 
    } 
    lp2_1.setIcon(new ImageIcon((new ImageIcon("image.jpg")).getImage() 
      .getScaledInstance(630, 600, java.awt.Image.SCALE_SMOOTH))); 

} 
+0

적응 : I 이 글을 처음 접 하시면서 좋은 문서에 대해 잘 모르시겠습니까? 감사합니다. 편집하십시오 ... –

답변

15

난 그냥이 밖으로 시도, 그것은 마법처럼 일했다 : 당신이 패널의지도를 얻을 해달라고하면

import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.OutputStream; 
import java.net.URL; 

import javax.swing.ImageIcon; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 

public class Snippet { 
    public static void main(String[] args) throws IOException { 
     JFrame test = new JFrame("Google Maps"); 

     try { 
      String imageUrl = "http://maps.google.com/staticmap?center=40,26&zoom=1&size=150x112&maptype=satellite&key=ABQIAAAAgb5KEVTm54vkPcAkU9xOvBR30EG5jFWfUzfYJTWEkWk2p04CHxTGDNV791-cU95kOnweeZ0SsURYSA&format=jpg"; 
      String destinationFile = "image.jpg"; 
      String str = destinationFile; 
      URL url = new URL(imageUrl); 
      InputStream is = url.openStream(); 
      OutputStream os = new FileOutputStream(destinationFile); 

      byte[] b = new byte[2048]; 
      int length; 

      while ((length = is.read(b)) != -1) { 
       os.write(b, 0, length); 
      } 

      is.close(); 
      os.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
      System.exit(1); 
     } 

     test.add(new JLabel(new ImageIcon((new ImageIcon("image.jpg")).getImage().getScaledInstance(630, 600, 
       java.awt.Image.SCALE_SMOOTH)))); 

     test.setVisible(true); 
     test.pack(); 

    } 
} 

가 뭐죠 실제로 lp2_1 뒤에,이 컨트롤이 문제가 될 수 있습니다.

+0

@AbhilashGoyal이 도움이 되었습니까? –

+0

나는 최근에 위에 주어진 코드를 사용했다. ImageIcon이 JFrame에 추가 된 줄을 이해하지 못했습니다 - test.add (새 JLabel ...). ImageIcon 오브젝트를 작성해, 다른 ImageIcon 내에서 사용하는 것은 최종적으로 JLabel에게 건네집니다. JLabel에서 직접 ImageIcon 생성자를 호출하면 오류가 발생합니다. – Sarvavyapi

+0

코드를 사용할 준비가되어 주셔서 감사합니다! "String str = destinationFile;"을 삭제할 수 있습니다. 사용하지 마십시오. –