在 Java 中显示图像
最后修改于 2024 年 1 月 27 日
在 Java 中显示图像教程展示了如何在 Java 中显示图像。
初学者程序员经常在项目中显示图像时遇到问题。问题在于正确识别图像文件的路径。关键是要意识到图像文件的相对路径从项目目录开始。创建本教程是为了使事情清晰明了。
显示图像示例
这里我们提供了在 Java 中显示图像的源代码。
com/zetcode/DisplayImage.java
package com.zetcode;
import java.awt.Container;
import java.awt.EventQueue;
import javax.swing.GroupLayout;
import javax.swing.ImageIcon;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class DisplayImage extends JFrame {
public DisplayImage() {
initUI();
}
private void initUI() {
ImageIcon ii = loadImage();
JLabel label = new JLabel(ii);
createLayout(label);
setTitle("Image");
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
private ImageIcon loadImage() {
var ii = new ImageIcon("src/main/resources/sid.png");
return ii;
}
private void createLayout(JComponent... arg) {
Container pane = getContentPane();
var gl = new GroupLayout(pane);
pane.setLayout(gl);
gl.setAutoCreateContainerGaps(true);
gl.setHorizontalGroup(gl.createSequentialGroup()
.addComponent(arg[0])
);
gl.setVerticalGroup(gl.createParallelGroup()
.addComponent(arg[0])
);
pack();
}
public static void main(String[] args) {
EventQueue.invokeLater(() -> {
var ex = new DisplayImage();
ex.setVisible(true);
});
}
}
该示例创建了一个 Java Swing 应用程序,并使用 ImageIcon 组件来显示图像。
private ImageIcon loadImage() {
var ii = new ImageIcon("src/main/resources/sid.png");
return ii;
}
重要的部分在这里。ImageIcon 接受图像的文件路径。此文件路径取决于我们使用的构建工具。
使用命令行工具显示图像
第一个示例使用命令行工具构建 Java 应用程序。
src
└── main
├── java
│ └── com
│ └── zetcode
│ └── DisplayImage.java
└── resources
└── sid.png
这是项目结构。
$ javac src/main/java/com/zetcode/DisplayImage.java -d bin
该应用程序使用 javac 工具编译。
bin
│ └── com
│ └── zetcode
│ └── DisplayImage.class
└── src
└── main
├── java
│ └── com
│ └── zetcode
│ └── DisplayImage.java
└── resources
└── sid.png
编译源代码后,我们在 bin/com/zetcode 子目录中创建了一个 Java 类文件。
$ java -cp bin com.zetcode.DisplayImage
我们使用 java 命令运行该应用程序。
使用 Ant 构建项目
在本节中,我们使用 Ant 构建工具来创建项目。
build.xml
src
└── main
├── java
│ └── com
│ └── zetcode
│ └── DisplayImage.java
└── resources
└── sid.png
这是项目结构。
build.xml
<?xml version="1.0"?>
<project name="DisplayImage" default="compile">
<target name="init">
<mkdir dir="build/classes"/>
</target>
<target name="compile" depends="init">
<javac includeantruntime="false" srcdir="src" destdir="build/classes"/>
</target>
<target name="clean">
<delete dir="build"/>
</target>
</project>
这是 Ant 构建文件。我们有用于创建目录、编译源代码和清理的任务。
$ ant
Buildfile: /home/jano/Documents/prog/java/display-image/ant-ver/build.xml
init:
[mkdir] Created dir: /home/jano/Documents/prog/java/display-image/ant-ver/build/classes
compile:
[javac] Compiling 1 source file to /home/jano/Documents/prog/java/display-image/ant-ver/build/classes
BUILD SUCCESSFUL
Total time: 0 seconds
我们构建项目。
$ java -cp build/classes/ com.zetcode.DisplayImage
我们运行该程序。
使用 IntelliJ IDEA
我们创建一个 Maven/Gradle 应用程序,并将图像复制到 resources 文件夹中。
创建源文件并复制图像后,我们可以运行该程序。
来源
在本文中,我们展示了如何在 Java 中显示图像。
作者
列出所有Java教程。