文章目录
- 1. 实战概述
- 2. 知识准备
- 3. 实现步骤
- 3.1 创建Java项目
- 3.2 创建图像浏览器类
- 3.2.1 声明变量与常量
- 3.2.2 创建构造方法
- 3.2.3 创建初始化界面方法
- 3.2.4 创建处理事件方法
- 3.2.5 创建主方法
- 3.2.6 查看完整代码
- 3.3 运行程序,查看结果
- 4. 实战小结
- 5. 扩展练习
1. 实战概述
- 在本次实战中,我们将通过一个简单的Java Swing图像浏览器案例,学习如何构建GUI应用程序。用户通过菜单项打开文件选择器对话框,选择图片文件后,图片会在窗口标签中显示。此案例将涵盖菜单栏、文件对话框和图片显示等核心功能,帮助大家快速掌握Java Swing的基本应用。
2. 知识准备
- 窗口(JFrame):用于创建应用程序的主窗口
- 标签(JLabel):用于显示文本或图像
- 菜单(JMenuBar、JMenu、JMenuItem):用于创建菜单栏、菜单和菜单项
- 文件选择器(JFileChooser):用于选择文件
- 事件处理:通过注册监听器并实现事件处理方法,响应用户操作
3. 实现步骤
3.1 创建Java项目
- 设置项目基本信息
- 单击【Create】按钮,生成项目基本骨架
3.2 创建图像浏览器类
- 创建
net.huawei.gui
包
- 在
net.huawei.gui
包里创建ImageViewer
类
- 让
ImageViewer
继承JFrame
类
3.2.1 声明变量与常量
- 声明六个变量
3.2.2 创建构造方法
- 构造方法里调用初始化界面方法和事件处理方法
3.2.3 创建初始化界面方法
- 创建
initGUI()
方法
- 代码说明:这段代码是图像浏览器的界面初始化方法,用于设置程序的初始界面。它首先设置窗口大小为
600×500
像素,然后创建一个标签组件用于后续显示图片。接着创建一个文件选择器,设置其初始目录为当前目录。之后构建菜单栏,添加“文件”菜单,并在其中添加“打开”和“退出”两个菜单项,分别用于打开图片和退出程序。最后,设置窗口的默认关闭操作、居中显示,并将其设置为可见状态。
3.2.4 创建处理事件方法
- 创建
handleEvents()
方法
- 代码说明:这段代码实现了图像浏览器的事件处理逻辑。它为“打开”菜单项添加了事件监听器,当用户点击时,会弹出文件选择器对话框。如果用户选择了图片文件,程序会获取文件路径并将其设置为标签的图标,从而在窗口中显示图片。同时,“退出”菜单项的事件监听器用于关闭程序。
3.2.5 创建主方法
- 主方法里实例化图像浏览器
3.2.6 查看完整代码
package net.huawei.gui;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
/**
* 功能:图像浏览器类
* 作者:华卫
* 日期:2025年01月31日
*/
public class ImageViewer extends JFrame {
private JLabel label; // 标签
private JFileChooser chooser; // 文件选择器
private JMenuBar menuBar; // 菜单栏
private JMenu mnuFile; // 文件菜单
private JMenuItem mniOpen; // 打开菜单项
private JMenuItem mniExit; // 退出菜单项
/**
* 构造方法
*/
public ImageViewer(String title) {
super(title);
initGUI(); // 调用初始化界面方法
handleEvents(); // 调用事件处理方法
}
/**
* 初始化界面方法
*/
private void initGUI() {
// 设置窗口尺寸
setSize(600, 500);
// 创建标签
label = new JLabel();
add(label);
// 创建文件选择器
chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("."));
// 创建菜单栏
menuBar = new JMenuBar();
setJMenuBar(menuBar); // 设置菜单栏
// 添加文件菜单
mnuFile = new JMenu("文件(F)");
mnuFile.setMnemonic('F'); // 设置热键字母
menuBar.add(mnuFile);
// 添加【打开】菜单项
mniOpen = new JMenuItem("打开(O)");
mniOpen.setMnemonic('O'); // 设置热键字母
mnuFile.add(mniOpen);
// 添加【退出】菜单项
mniExit = new JMenuItem("退出(X)");
mniExit.setMnemonic('X'); // 设置热键字母
mnuFile.add(mniExit);
// 设置窗口缺省关闭操作
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 设置窗口屏幕居中
setLocationRelativeTo(null);
// 设置窗口可见
setVisible(true);
}
/**
* 处理事件方法
*/
private void handleEvents() {
// 处理【打开】菜单项的事件
mniOpen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
// 显示文件选择器对话框
int choice = chooser.showOpenDialog(null);
// 如果选择了文件,那么将其设置为标签的图标
if (choice == JFileChooser.APPROVE_OPTION) {
String name = chooser.getSelectedFile().getPath();
label.setIcon(new ImageIcon(name));
}
}
});
// 处理【退出】菜单项的事件
mniExit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
System.exit(0); // 退出应用程序
}
});
}
/**
* 主方法
*
* @param args
*/
public static void main(String[] args) {
new ImageViewer("图像浏览器V1.0");
}
}
3.3 运行程序,查看结果
- 运行
ImageViewer
,显示主窗口
- 打开文件菜单
- 单击【打开】菜单项,选择要打开的图片文件
deepseek.jpg
- 单击【打开】按钮,浏览图片
4. 实战小结
- 在本次实战中,我们通过Java Swing实现了一个简单的图像浏览器应用程序。首先,我们创建了一个
JFrame
窗口,并添加了菜单栏、标签和文件选择器等组件。通过JFileChooser
,用户可以选择本地图片文件,并将其显示在窗口的标签中。事件处理部分通过ActionListener
实现了“打开”和“退出”菜单项的功能,确保用户操作能够正确响应。通过这个案例,我们掌握了Java Swing的基本组件使用和事件处理机制,为后续开发更复杂的GUI应用奠定了基础。
5. 扩展练习
- 添加图片缩放功能:允许用户调整图片的大小。
- 支持多种图片格式:扩展文件选择器,支持更多图片格式。
- 添加工具栏:在窗口中添加工具栏,提供常用操作的快捷方式。