java设计最简单记账本_GitHub - d6day66/SmallAccount: 小小记账本,拥有基础记账功能,是一个完整的JAVA (J2SE) 练手+自用的小项目,使用Swing和SQLit...

SmallAccount

小小记账本,拥有基础记账功能,是一个JAVA (J2SE) 练手+自用的小项目。

实现了基础记账功能

记账分类的增改删查

记账记录的增改删查

月度一览和月度每日统计(柱状图)

配置信息的修改与保存 (每月预算)

数据导出、导入和重置

使用Swing和SQLite数据库,无需额外配置数据库

Entity层、DAO层、Service层和GUI层分离,GUI层界面、数据、监听器分离

面板使用单例模式,数据库采用外键约束

带有详细的注释

启动

入口为

startup.Bootstrap.main

演示

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已经包含了完整的数据结构和测试数据

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值