2012-10-27 118 views
-1

這是我第一次用Java做這件事,我不確定它是如何工作的。該網址應該是一個字符串或文件?從URL中繪製圖像?

它不起作用。它給「改變類型的幽靈到ImageIcon」,我不想這樣做。

String url = "http://1.bp.blogspot.com/_y3qWcWEV3Gc/TL-Ubk3mx0I/AAAAAAAAAJ0/UxcN2eXwCa4/s200/nes_ms_pac_man_ghost-copy.jpeg"; 
    Image ghost = new ImageIcon(url); 


    g2d.drawImage(ghost, x, y, (ImageObserver) this); 
+0

使用一個'ImageIcon',然後它的'的getImage()'mehtod:http://docs.oracle.com/javase/7/docs/api/javax/swing/ImageIcon.html#getImage() – madth3

+0

@ madth3 :檢查我的答案,即使使用它的方法,也不需要使用ImageIcon。 – Jack

回答

0

您可以輕鬆地將來自URL的ImageIcon但你必須使用正確的構造函數:

URL url = new URL("http://1.bp.blogspot.com/_y3qWcWEV3Gc/TL-Ubk3mx0I/AAAAAAAAAJ0/UxcN2eXwCa4/s200/nes_ms_pac_man_ghost-copy.jpeg"); 
ImageIcon icon = new ImageIcon(url); 

要加載Image(這是你想要的Graphics2D對象上使用的) ,而ImageIcon在UI組件使用,您應該使用ImageIO類賦予的功能:

static BufferedImage read(URL input) 

實際上你可以使用ImageIcon.getImage(),但這是沒有意義的,因爲你根本不需要ImageIcon。只需使用ImageIO類。

+0

這是OP使用的構造函數,他明確表示他不需要'ImageIcon'。 – madth3

+0

@ madth3:這不是一樣的構造函數。 Mine正在傳遞一個URL,而不是一個String(它被隱式解釋爲一個文件名,而不是一個遠程資源)。 – Jack

+0

謝謝,但它仍然給我錯誤更改類型的幽靈ImageIcon。然後,這修改drawImage drawLine – lisa92