# SmallAccount
小小记账本,拥有基础记账功能,是一个JAVA (J2SE) 练手+自用的小项目。
* 实现了基础记账功能
- [x] 记账分类的增改删查
- [x] 记账记录的增改删查
- [x] 月度一览和月度每日统计(柱状图)
- [x] 配置信息的修改与保存 (每月预算)
- [x] 数据导出、导入和重置
* 使用Swing和SQLite数据库,无需额外配置数据库
* Entity层、DAO层、Service层和GUI层分离,GUI层界面、数据、监听器分离
* 面板使用单例模式,数据库采用外键约束
* 带有详细的注释
## 启动
入口为
```
startup.Bootstrap.main
```
## 演示
![](https://github.com/xenv/SmallAccount/blob/master/resources/github/demo.gif?raw=true)
## 目录结构
```
├─db
│ data.db 数据库
│
├─lib
│ chart.jar 表格库
│ pgslookandfeel-1.1.2.jar 皮肤库
│ sqlite-jdbc-3.20.0.jar SQLite JDBC
│ swingx-core-1.6.2.jar 日期控件
│
├─resources
│ ├─img 图片资源(按钮图片)
│ │ backup.png
│ │ category1.png
│ │ category2.png
│ │ config.png
│ │ home.png
│ │ record.png
│ │ report.png
│ │ restore.png
│
├─src
│ ├─dao DAO操作类
│ │ CategoryDAO.java
│ │ ConfigDAO.java
│ │ RecordDAO.java
│ │
│ ├─entity 实体类(三个表)
│ │ Category.java
│ │ Config.java
│ │ Record.java
│ │
│ ├─gui 界面类
│ │ ├─frame 主框架
│ │ │ MainFrame.java
│ │ │
│ │ ├─listener 监听器(按钮及菜单栏)
│ │ │ BackupListener.java
│ │ │ CategoryListener.java
│ │ │ ConfigListener.java
│ │ │ RecordListener.java
│ │ │ RecoverListener.java
│ │ │ ToolBarListener.java
│ │ │
│ │ ├─model 表格和下拉框的model
│ │ │ CategoryComboBoxModel.java
│ │ │ CategoryTableModel.java
│ │ │
│ │ ├─page SpendPage的页面数据
│ │ │ SpendPage.java
│ │ │
│ │ └─panel 主面板及其他面板
│ │ BackupPanel.java
│ │ CategoryPanel.java
│ │ ConfigPanel.java
│ │ MainPanel.java
│ │ RecordPanel.java
│ │ RecoverPanel.java
│ │ ReportPanel.java
│ │ SpendPanel.java
│ │ WorkingPanel.java
│ │
│ ├─service 负责部分业务逻辑
│ │ CategoryService.java
│ │ ConfigService.java
│ │ RecordService.java
│ │ ReportService.java
│ │ SpendService.java
│ │
│ ├─startup 启动类
│ │ Bootstrap.java
│ │
│ └─util 工具类
│ CenterPanel.java
│ ChartUtil.java
│ CircleProgressBar.java
│ ColorUtil.java
│ DateUtil.java
│ DBUtil.java
│ GUIUtil.java
│ SQLUtil.java
```
## 数据库结构
db/data.db已经包含了完整的数据结构和测试数据
```sqlite
CREATE TABLE config (
id INTEGER PRIMARY KEY AUTOINCREMENT
NOT NULL,
key_ VARCHAR (255) UNIQUE,
value VARCHAR (255)
);
CREATE TABLE category (
id INTEGER PRIMARY KEY AUTOINCREMENT
NOT NULL,
name VARCHAR (255) UNIQUE
NOT NULL
);
CREATE TABLE record (
id INTEGER PRIMARY KEY AUTOINCREMENT
NOT NULL,
cid INTEGER CONSTRAINT fk_record_category REFERENCES category (id),
spend INTEGER NOT NULL,
comment TEXT,
date DATE
);
```
## 启动流程
```
startup.Bootstrap.main() 主类
↓
gui.panel.MainFrame.instance 程序窗体
├─gui.listener.ToolBarListener等 监控按钮操作
↓
gui.panel.MainPanel.instance 底层Panel及导航栏
↓
MainPanel.instance.workingPanel 功能Panel的底Panel,实现了居中的功能
↓
gui.panel.SpendPanel.instance 本月一览界面
↓
gui.panel.* 通过监控菜单栏实现其他Panel的切换
```
## License
GPL v3.0
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
小小记账本,拥有基础记账功能,是一个完整的JAVA (J2SE) 练手+自用的小项目,使用Swing和SQLite数.zip (71个子文件)
资料总结
lib
pgslookandfeel-1.1.2.jar 170KB
swingx-core-1.6.2.jar 1.38MB
sqlite-jdbc-3.20.0.jar 6.33MB
chart.jar 164KB
resources
github
demo.gif 878KB
img
category.png 332B
record.png 1KB
home.png 1KB
backup.png 637B
config.png 2KB
report.png 429B
history.png 827B
restore.png 537B
src
dao
ConfigDAO.java 4KB
CategoryDAO.java 4KB
RecordDAO.java 7KB
service
ConfigService.java 1KB
ReportService.java 2KB
CategoryService.java 1KB
SpendService.java 1KB
RecordService.java 1KB
gui
panel
ConfigPanel.java 2KB
WorkingPanel.java 428B
HistoryPanel.java 874B
HistoryListPanel.java 2KB
BackupPanel.java 830B
RecordPanel.java 3KB
MonthPickerPanel.java 2KB
MainPanel.java 3KB
ReportPanel.java 899B
CategoryPanel.java 2KB
RecoverPanel.java 871B
SpendPanel.java 4KB
model
CategoryTableModel.java 2KB
RecordTableModel.java 2KB
CategoryComboBoxModel.java 1KB
page
SpendPage.java 1KB
listener
MonthPickerListener.java 1KB
HistoryListListener.java 3KB
RecordListener.java 2KB
ToolBarListener.java 1KB
CategoryListener.java 2KB
BackupListener.java 2KB
RecoverListener.java 1KB
ConfigListener.java 1KB
frame
MainFrame.java 703B
entity
Config.java 676B
Record.java 1KB
Category.java 766B
startup
Bootstrap.java 975B
util
DateUtil.java 2KB
CircleProgressBar.java 3KB
DBUtil.java 590B
ChartUtil.java 4KB
GUIUtil.java 3KB
CenterPanel.java 2KB
ColorUtil.java 676B
SQLUtil.java 2KB
LICENSE 34KB
.idea
uiDesigner.xml 9KB
libraries
lib.xml 257B
vcs.xml 180B
misc.xml 272B
modules.xml 276B
SmallAccount.iml 839B
test
test2.java 398B
test1.java 999B
README.md 5KB
SmallAccount.iml 785B
db
sqlite3.exe 723KB
data.db 28KB
共 71 条
- 1
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功