TodoApp - 待办管理工具

一款基于 JavaFX 17 构建的桌面待办事项管理应用,支持任务分类、优先级、提醒、日历视图、统计报表等功能,数据存储在本地 SQLite 数据库。

使用CodeBuddy辅助完成。工具给力! AI 666!!!

效果图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

技术栈

技术 版本 说明
Java 17 运行环境
JavaFX 17.0.10 图形界面框架
SQLite 3.45.3.0 本地关系型数据库
Jackson 2.17.0 JSON 序列化/反序列化
Ikonli 12.3.1 图标库 (FontAwesome)
ControlsFX 11.2.1 JavaFX 增强组件
Lombok 1.18.32 简化代码
Launch4j 2.5.1 打包为 Windows exe

功能特性

任务管理

  • 创建、编辑、删除待办任务
  • 设置任务标题、详细描述
  • 支持标签管理(逗号分隔)
  • 任务状态:待办 / 进行中 / 已完成

优先级

  • 四种优先级:高、中、低、无
  • 颜色区分显示(红/橙/蓝/灰)

紧急程度

  • 两种紧急程度:高、低
  • 用于四象限视图分类

四象限视图( Eisenhower Matrix )

  • 基于重要程度(优先级)和紧急程度划分四个象限:
    • Q1 紧急 + 重要:立即执行(红色)
    • Q2 不紧急 + 重要:计划执行(蓝色)
    • Q3 紧急 + 不重要:委托他人(黄色)
    • Q4 不紧急 + 不重要:删除/忽略(灰色)
  • 视图切换按钮:☰ 列表 / 📅 日历 / ▦ 四象限
  • 支持双击任务编辑、完成/取消完成操作

分类管理

  • 自定义分类(名称 + 颜色)
  • 侧边栏快速筛选
  • 分类增删改

截止日期 & 提醒

  • 设置任务截止日期
  • 截止日期颜色提示(逾期红色高亮)
  • 系统提醒通知(基于截止时间)

日历视图

  • 月历展示
  • 按日期筛选任务
  • 直观查看任务分布

统计报表

  • 总任务数、完成数、完成率
  • 无截止日期任务统计
  • 环形图可视化

用户登录

  • 用户注册(用户名、密码)
  • 用户登录/登出
  • 密码 SHA-256 哈希加密
  • 侧边栏显示当前用户和登出按钮

其他

  • 快捷键支持(Ctrl+N 新建、Ctrl+F 搜索等)
  • 明/暗主题切换
  • 语言切换(中/英文)
  • 窗口置顶开关
  • 窗口最小化到系统托盘

界面布局

┌─────────────────────────────────────────────────────────┐
│  标题栏 (TodoApp)                              [─][□][×]│
├────────────┬────────────────────────────────────────────┤
│            │  [☰ 列表][📅 日历][▦ 四象限]               │
│  分类      ├────────────────────────────────────────────┤
│  ────────  │  🔍 搜索任务...                  [⚙设置] │
│  ◉ 全部    ├────────────────────────────────────────────┤
│  ● 工作    │  [全部] [今年] [本月] [本周] [今天]        │
│  ● 生活    ├────────────────────────────────────────────┤
│  ● 学习    │                                            │
│  ────────  │   ┌──────────────────────────────────┐     │
│            │   │ ☐ 买菜                    [高] 📅5/15│     │
│  统计      │   │   分类: 生活                    │     │
│  ────────  │   └──────────────────────────────────┘     │
│  总: 12    │                                            │
│  完成: 5   │   ┌──────────────────────────────────┐     │
│  完成率    │   │ ☐ 写周报                  [中] 📅5/16│     │
│  : 42%    │   │   分类: 工作                    │     │
│            │   └──────────────────────────────────┘     │
│  [+添加分类]│                                            │
└────────────┴────────────────────────────────────────────┘

四象限视图布局

┌─────────────────────────────────────────────────────────┐
│                      四象限视图                          │
├─────────────────────────────┬───────────────────────────┤
│      🔴 紧急  /  重要        │      🔵 不紧急  /  重要    │
│                             │                           │
│   ┌─────────────────────┐   │   ┌─────────────────────┐│
│   │ ☐ 任务1        📅5/15│   │   │ ☐ 任务2        📅5/20││
│   └─────────────────────┘   │   └─────────────────────┘│
│                             │                           │
├─────────────────────────────┼───────────────────────────┤
│      🟡 紧急  /  不重要      │      ⚪ 不紧急  /  不重要  │
│                             │                           │
│   ┌─────────────────────┐   │   ┌─────────────────────┐│
│   │ ☐ 任务3             │   │   │   暂无任务           ││
│   └─────────────────────┘   │   └─────────────────────┘│
│                             │                           │
└─────────────────────────────┴───────────────────────────┘

项目结构

src/main/java/com/todoapp/
├── MainApp.java              # 主程序入口
├── Launcher.java            # 启动器(处理 JLink)
├── dao/
│   └── DatabaseManager.java # SQLite 数据库管理
├── model/
│   ├── Task.java            # 任务实体
│   ├── Category.java        # 分类实体
│   ├── Priority.java        # 优先级枚举
│   ├── Urgency.java        # 紧急程度枚举
│   ├── TaskStatus.java      # 任务状态枚举
│   └── User.java           # 用户实体
├── service/
│   ├── TaskService.java     # 任务业务逻辑
│   ├── UserService.java     # 用户业务逻辑
│   └── ReminderService.java  # 提醒服务
├── ui/
│   ├── component/           # UI 组件
│   └── controller/
│       ├── TaskListController.java    # 任务列表
│       ├── TaskEditDialog.java         # 任务编辑弹窗
│       ├── CategoryController.java     # 分类管理
│       ├── CalendarController.java     # 日历视图
│       ├── StatsController.java        # 统计报表
│       ├── QuadrantController.java     # 四象限视图
│       ├── LoginController.java        # 登录/注册
│       └── SettingsController.java     # 设置面板
└── util/
    ├── AppConfig.java       # 应用配置(主题、语言)
    └── I18n.java            # 国际化

构建运行

环境要求

  • JDK 17+
  • Maven 3.6+

本地运行

# 克隆项目
cd todo-app

# 安装依赖并运行
mvn javafx:run

打包

# 打包为可执行 jar
mvn clean package

# 打包为 Windows exe(需要 JRE 17)
mvn clean package
# 输出: target/TodoApp.exe

操作说明

新建任务

  1. 点击右上角 + 按钮 或使用快捷键 Ctrl+N
  2. 填写任务标题(必填)
  3. 设置描述、优先级、分类、截止日期、提醒时间
  4. 点击「保存」

管理分类

  1. 点击左侧「+ 添加分类」或已有分类行的编辑按钮
  2. 输入分类名称
  3. 选择分类颜色
  4. 点击「保存」或直接关闭弹窗

删除任务/分类

  1. 悬停显示删除按钮,或右键菜单
  2. 确认删除(任务删除不可恢复)

筛选任务

  • 点击侧边栏「全部」或具体分类
  • 使用顶部时间按钮:全部/今年/本月/本周/今天
  • 在搜索框输入关键词

切换主题

  1. 点击右上角「⚙设置」
  2. 选择「主题」-> 「浅色/深色」

切换语言

  1. 点击右上角「⚙设置」
  2. 选择「语言」-> 「中文/English」

快捷键

快捷键 功能
Ctrl + N 新建任务
Ctrl + F 聚焦搜索框
Ctrl + Q 退出应用

数据存储

  • 数据库文件:~/.todoapp/todo.db
  • 配置文件:~/.todoapp/config.json
  • 日志文件:~/.todoapp/logs/app.log

License

MIT License

更多推荐