2013-02-14 82 views
2

我無法正確理解是否正在讀取圖像。我用隨機比爾·蓋茨圖片代碼:Java圖像導入顯示

import java.awt.image.BufferedImage; 
import java.io.File; 
import java.io.IOException; 
import javax.imageio.ImageIO; 

public class ReadingImage { 

    public static void main(String[] args) {  
     //readImage("billgates.jpg"); 


     BufferedImage img = null; 
     try { 
      img = ImageIO.read(new File("billgates.jpg")); 
     } catch (IOException e) { 

     } 

    } 
} 

的問題是一個Java圖標放在doc(MAC用戶)出現了,卻沒有窗戶或任何顯示。這是我第一次導入一個如此裸露的Java圖像文件。

你可以將圖像保存到數組中並按需顯示,即是否有顯示功能?我不記得上面的代碼實際上要求顯示圖像。

謝謝

+2

比爾蓋茨和你期待它的工作,認真嗎? :) – 2013-02-14 21:35:48

回答

2

的確,您不在此處顯示任何內容,只需從文件加載圖片。

如果要使用Swing,可以使用ImageIcon顯示圖像,例如在JLabel中。請參閱the tutorial from Oracle

此外,你真的不想在你的catch(IOException e)塊中什麼也不放。至少把一些代碼打印出來的錯誤。對於默默無視的例外來說,幾乎總是一件非常糟糕的事情:

try { 
    img = ImageIO.read(new File("billgates.jpg")); 
} catch (IOException e) { 
    System.err.println(e); // print error 
} 
+0

在我的代碼中,圖像是否成功保存在變量「img」中?此外,我將導入多個圖像,所以將它全部存儲在數組中,然後在Swing中使用您的建議方法來顯示它? – user1234440 2013-02-14 21:44:14

+0

如果圖像沒有被正確讀取,那麼'img'爲空或者會拋出異常。測試你的代碼,看看它是否。如果需要,可以使用'BufferedImage []'來存儲圖像。 – 2013-02-14 22:02:48