2013-07-11 77 views
8

這是我的代碼。沒有編譯錯誤,但我沒有得到期望的輸出:地圖沒有出現。 我想在我的JPanel中打開Goog​​le靜態地圖,並且還想將其保存在本地驅動器上。這是我正在使用的代碼。請引導我出錯的地方。Google地圖JAVA Swing

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

@ david99world:我這是新的,所以不知道很多關於良好的文檔,thankx編輯它... –

回答

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(new JLabel ...)。創建一個ImageIcon對象並在另一個ImageIcon中使用它最終傳遞給JLabel的要點是什麼?當我直接調用JLabel中的ImageIcon構造函數時出現錯誤。 – Sarvavyapi

+0

感謝您隨時可以使用的代碼!您可以刪除 「String str = destinationFile;」它從不使用。 –