办它-一款基于JavaFX的待办管理小工具
·
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
操作说明
新建任务
- 点击右上角
+按钮 或使用快捷键Ctrl+N - 填写任务标题(必填)
- 设置描述、优先级、分类、截止日期、提醒时间
- 点击「保存」
管理分类
- 点击左侧「+ 添加分类」或已有分类行的编辑按钮
- 输入分类名称
- 选择分类颜色
- 点击「保存」或直接关闭弹窗
删除任务/分类
- 悬停显示删除按钮,或右键菜单
- 确认删除(任务删除不可恢复)
筛选任务
- 点击侧边栏「全部」或具体分类
- 使用顶部时间按钮:全部/今年/本月/本周/今天
- 在搜索框输入关键词
切换主题
- 点击右上角「⚙设置」
- 选择「主题」-> 「浅色/深色」
切换语言
- 点击右上角「⚙设置」
- 选择「语言」-> 「中文/English」
快捷键
| 快捷键 | 功能 |
|---|---|
Ctrl + N |
新建任务 |
Ctrl + F |
聚焦搜索框 |
Ctrl + Q |
退出应用 |
数据存储
- 数据库文件:
~/.todoapp/todo.db - 配置文件:
~/.todoapp/config.json - 日志文件:
~/.todoapp/logs/app.log
License
MIT License
更多推荐


所有评论(0)