BufferedImage img = ImageIO.read(new File("index.jpg"));
分析:
这会创建一个BufferedImage
名为 的变量img
,我们可以将其视为一个对象,其中包含 java 显示图像所需的数据,BufferedImage
根据文档:
该BufferedImage
子类描述了Image
一个可访问的图像数据缓冲区。ABufferedImage
由图像数据的 aColorModel
和 Raster 组成。
此类基本上包含帮助我们读取和写入图像的方法,而无需每次都编写我们自己的方法,根据文档:
ImageReaders
一个包含用于定位和ImageWriters
以及执行简单编码和解码的静态便捷方法的类
。
这是一个public
static
内部方法,ImageIO
因此可以在没有new
关键字的情况下访问。它允许我们读取我们想要用作 a 的文件的数据,并根据 docsImage
返回它读取的数据(因此我们将其保存在变量中):
返回一个 BufferedImage 作为使用从当前注册的那些中自动选择的 ImageReader 解码提供的文件的结果。该文件被包装在一个 ImageInputStream 中。
参数: input - 要读取的文件。
返回: 包含输入的解码内容的 BufferedImage,或 null。
抛出: IllegalArgumentException - 如果输入为空。IOException - 如果在读取过程中发生错误。
new File(String filename)
是类File中的非静态方法,因此必须使用新创建的实例 ( new
) 来访问。它允许我们创建对文件的引用,以便我们可以按照文档File
对实例执行操作(即读写等):
通过将给定的路径名字符串转换为抽象路径名来创建一个新的 File 实例。如果给定的字符串是空字符串,则结果是空的抽象路径名。
参数: pathname - 路径名字符串
抛出: NullPointerException - 如果路径名参数为空
现在,当您调用setIconImage(img)
我们从文件中读取的所有数据(这是我们的图片并已转换为BufferedImage
)时,将用于将图片显示为JFrame
s 图标。
另一种方法是:
// Create frame
String title = "Frame Title";
JFrame frame = new JFrame(title);
// Set icon
Image icon = Toolkit.getDefaultToolkit().getImage("icon.gif");
frame.setIconImage(icon);