Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

xenv/SmallAccount

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

10 Commits

Repository files navigation

SmallAccount

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

  • 实现了基础记账功能

    • 记账分类的增改删查
    • 记账记录的增改删查
    • 月度一览和月度每日统计(柱状图)
    • 配置信息的修改与保存 (每月预算)
    • 数据导出、导入和重置
  • 使用Swing和SQLite数据库,无需额外配置数据库

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

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

  • 带有详细的注释

启动

入口为

startup.Bootstrap.main

演示

目录结构

├─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

About

小小记账本,拥有基础记账功能,是一个完整的JAVA (J2SE) 练手+自用的小项目,使用Swing和SQLite数据库,多层设计

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /