2013-02-14 55 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