# 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
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
基于java实现的小小记账本项目 (173个子文件)
RecordDAO.class 11KB
ConfigDAO.class 8KB
CategoryDAO.class 8KB
SpendPanel.class 4KB
ChartUtil.class 4KB
GUIUtil.class 3KB
RecordPanel.class 3KB
SQLUtil.class 3KB
CircleProgressBar.class 3KB
HistoryListListener.class 3KB
CategoryPanel.class 3KB
HistoryListPanel.class 3KB
RecordListener.class 3KB
CategoryService.class 3KB
RecordTableModel.class 2KB
MainPanel.class 2KB
ConfigPanel.class 2KB
CenterPanel.class 2KB
BackupListener.class 2KB
CategoryListener.class 2KB
MonthPickerPanel.class 2KB
CategoryTableModel.class 2KB
ReportService.class 2KB
RecoverListener.class 2KB
DateUtil.class 2KB
ToolBarListener.class 2KB
RecordService.class 2KB
SpendService.class 2KB
CategoryComboBoxModel.class 2KB
ConfigListener.class 2KB
ConfigService.class 2KB
Record.class 1KB
MonthPickerListener.class 1KB
RecoverPanel.class 1KB
BackupPanel.class 1KB
ReportPanel.class 1KB
SpendPage.class 1KB
HistoryPanel.class 1KB
Category.class 1KB
DBUtil.class 1KB
Config.class 1KB
MainFrame.class 972B
RecoverListener$1.class 945B
BackupListener$1.class 939B
ColorUtil.class 935B
Bootstrap$1.class 842B
Bootstrap.class 637B
WorkingPanel.class 326B
test.class 253B
data.db 28KB
data.db 28KB
sqlite3.exe 723KB
sqlite3.exe 723KB
demo.gif 878KB
demo.gif 878KB
SmallAccount.iml 839B
SmallAccount.iml 785B
test.iml 643B
test.iml 643B
sqlite-jdbc-3.20.0.jar 6.33MB
sqlite-jdbc-3.20.0.jar 6.33MB
swingx-core-1.6.2.jar 1.38MB
swingx-core-1.6.2.jar 1.38MB
spring-core-5.2.3.RELEASE.jar 1.37MB
spring-core-5.2.3.RELEASE.jar 1.37MB
spring-context-5.2.3.RELEASE.jar 1.16MB
spring-context-5.2.3.RELEASE.jar 1.16MB
spring-beans-5.2.3.RELEASE.jar 669KB
spring-beans-5.2.3.RELEASE.jar 669KB
spring-test-5.2.3.RELEASE.jar 663KB
spring-test-5.2.3.RELEASE.jar 663KB
spring-messaging-5.2.3.RELEASE.jar 530KB
spring-messaging-5.2.3.RELEASE.jar 530KB
spring-jdbc-5.2.3.RELEASE.jar 397KB
spring-jdbc-5.2.3.RELEASE.jar 397KB
spring-aop-5.2.3.RELEASE.jar 364KB
spring-aop-5.2.3.RELEASE.jar 364KB
spring-tx-5.2.3.RELEASE.jar 307KB
spring-tx-5.2.3.RELEASE.jar 307KB
spring-expression-5.2.3.RELEASE.jar 275KB
spring-expression-5.2.3.RELEASE.jar 275KB
spring-jms-5.2.3.RELEASE.jar 256KB
spring-jms-5.2.3.RELEASE.jar 256KB
spring-orm-5.2.3.RELEASE.jar 196KB
spring-orm-5.2.3.RELEASE.jar 196KB
spring-context-support-5.2.3.RELEASE.jar 178KB
spring-context-support-5.2.3.RELEASE.jar 178KB
pgslookandfeel-1.1.2.jar 170KB
pgslookandfeel-1.1.2.jar 170KB
chart.jar 164KB
chart.jar 164KB
spring-oxm-5.2.3.RELEASE.jar 62KB
spring-oxm-5.2.3.RELEASE.jar 62KB
commons-logging-1.2.jar 60KB
commons-logging-1.2.jar 60KB
spring-aspects-5.2.3.RELEASE.jar 46KB
spring-aspects-5.2.3.RELEASE.jar 46KB
spring-instrument-5.2.3.RELEASE.jar 7KB
spring-instrument-5.2.3.RELEASE.jar 7KB
aopalliance-1.0.jar 4KB
共 173 条
- 1
- 2
资源评论
weixin_40404356
- 粉丝: 2
- 资源: 7
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功