# SimpleMemo **Repository Path**: wisterialee/SimpleMemo ## Basic Information - **Project Name**: SimpleMemo - **Description**: SimpleMemo是使用Java开发的一个简易的备忘录软件。这个项目用到的Java知识点主要有Javabean类的书写,Java Swing的应用以及集合、列表等。 本人是一名计算机专业的学生,这个小项目仅仅是心血来潮,写着玩的。并且我还将这个项目打包成了安装文件,放在了release文件夹中,可以安装体验(以管理员身份运行,不然会出bug),在卸载时建议使用Geek卸载。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-10-28 - **Last Updated**: 2026-07-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: Java ## README
一个基于 Java Swing 的本地桌面备忘录练手项目
## 项目简介 SimpleMemo 是一个偏轻量的桌面备忘录程序,核心目标很直接:把日常要记的标题和内容保存下来,并提供增、改、删、导出这些基础能力。项目整体采用 Java 原生图形界面方案实现,没有引入复杂框架,适合作为一个入门阶段的桌面应用练手案例来阅读。 从代码实现上看,它主要围绕下面这条链路展开: 1. 启动 `App.java` 进入主界面。 2. 主界面通过 `JTable` 读取并展示本地备忘数据。 3. 通过独立窗口完成新增、修改操作。 4. 借助 Java 对象序列化把数据持久化到本地文件。 5. 支持把全部备忘导出为桌面上的 `.txt` 文本文件。 ## 功能说明 ### 1. 备忘列表展示 - 主窗口会读取本地 `src/data.txt` 中的备忘数据。 - 以表格形式展示两列信息:`标题` 与 `正文`。 - 当数据条数较多时,可通过滚动区域浏览全部内容。 ### 2. 新增备忘 - 点击主界面的 `添加` 按钮进入新增窗口。 - 用户需要填写标题和内容,两项都不能为空。 - 点击保存后,会先进行一次确认,再把数据写入本地文件。 ### 3. 修改备忘 - 在主界面先选中某一条记录,再点击 `修改`。 - 修改窗口会自动回填当前备忘的标题和内容。 - 确认修改后,会把内存中的对象更新,并将完整集合重新写回文件。 ### 4. 删除备忘 - 在主界面选中目标记录后点击 `删除`。 - 删除前会弹出确认框,避免误删。 - 删除完成后,主界面会重新刷新,表格内容同步更新。 ### 5. 导出文本 - 菜单栏 `功能 -> 导出` 可将当前全部备忘导出到系统桌面。 - 导出的文件名固定为 `备忘录.txt`。 - 导出内容会按文本形式逐条写入,便于脱离程序单独查看。 ### 6. 简单信息弹窗 - 菜单栏 `关于我们` 中提供 `作者简介` 与 `项目简介` 两个入口。 - 程序内部封装了 `MyJDialog` 用于展示提示类弹窗。 - 未选中数据、输入为空、导出完成等场景也会通过弹窗反馈给用户。 ## 技术栈 | 技术 / 组件 | 说明 | |----------------------|---------------------------------------------------------------| | Java SE | 项目核心开发语言,负责业务逻辑、文件读写与对象管理 | | Swing / AWT | 用于实现桌面图形界面、按钮、表格、菜单、弹窗等组件 | | Java IO | 负责本地文件读写、导出文本文件 | | Object Serialization | 使用 `ObjectInputStream` / `ObjectOutputStream` 持久化 `Memo` 对象集合 | | IntelliJ IDEA 工程结构 | 项目包含 `.iml` 与 `.idea` 配置,适合直接以 IDEA 工程方式打开 | ## 核心实现思路 ### 数据存储 - 备忘数据保存在 `src/data.txt`。 - 实际存储格式并不是纯文本,而是 `ArrayList![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |