Java编写的窗体程序 个人财务系统 个人记账系统 完整代码 下载运行

文章介绍了一个基于Java语言,使用Swing框架开发的个人记账系统,具备修改密码、记账管理、统计分析和建议分析等功能。系统提供了完整源码,开发者通过该项目可以学习到事件处理、文件操作、UI布局和JDBC等相关知识。

今天为大家分享一个java语言编写的个人记账系统程序-413,目前系统功能已经很全面,后续会进一步完善。整个系统界面漂亮,有完整得源码,希望大家可以喜欢。喜欢的帮忙点赞和关注。一起编程、一起进步。

开发环境

开发语言为Java,开发环境Eclipse或者IDEA都可以,无数据库,主要。运行主程序,或者执行打开JAR文件即可以运行本程序

系统框架

   利用JDK自带的SWING框架开发。纯窗体模式,直接运行Main文件即可以。同时带有详细得设计文档。

功能模块介绍

    本次开发的个人财务系统主要包括以下一些模块:修改密码模块、记账管理模块、统计分析报表模块、建议分析模块。

1 修改密码.修改密码需要输入老密码,和新密码和确认密码

2 记账模块:对日常信息进行记录。记录信息包括:编号、日期、编号类型、内容、金额。可以对记账信息进行日常的维护操作,包括增加,删除,修改等操作

3 统计分析模块:对个人账单信息进行统计分析。统计分析的结果包含柱状图和饼图。

4 建议分析模块:对个人收支消费情况给出相应的建议

实现效果

1 系统登陆

2 系统主界面

 3 录入数据

4 账目修改

 5 统计报表

6 修改密码

 关键代码

public MainFrame(String username){
		super(username+",欢迎使用个人理财账本!");
		this.username=username;
		
		Image icon=new ImageIcon("Main_frame.png").getImage();
		this.setIconImage(icon);
		
		Container c=this.getContentPane();
		c.setLayout(new BorderLayout());
		c.add(mb,"North");
		mb.add(m_system);
		mb.add(m_fm);
		mb.add(m_chart);
		mb.add(m_about);
		m_system.add(mI[0]);
		m_system.add(mI[1]);
		m_fm.add(m_FMEdit);
		m_chart.add(m_ch1);
		m_about.add(m_ab1);
		m_FMEdit.addActionListener(this);
	        mI[0].addActionListener(this);
	    mI[1].addActionListener(this);
	    
	    m_ch1.addActionListener(this);
	    m_ab1.addActionListener(this);
	    
	    
	    date1 = new Date();
		datepick1 = new JXDatePicker();
		mymatter1 = new SimpleDateFormat("yyyyMMdd");
		datepick1.setFormats(mymatter1);
		datepick1.setDate(date1);
		date2 = new Date();
		datepick2 = new JXDatePicker();
		mymatter2 = new SimpleDateFormat("yyyyMMdd");
		datepick2.setFormats(mymatter2);
		datepick2.setDate(date2);
	    
	    l_type=new JLabel("收支类型:");	
	    c_type=new JComboBox(s1);
	    b_select1=new JButton("查询");
		l_fromdate=new JLabel("起始时间");
        //t_fromdate=new JTextField(8);
		l_todate=new JLabel("终止时间");
        //t_todate=new JTextField(8);
		b_select2=new JButton("查询");
		l_ps = new JLabel("注意:时间格式为YYYYMMDD,例如:20150901");
		p_condition=new JPanel();
		p_condition.setBackground(Color.WHITE);
		p_condition.setLayout(new GridLayout(4,1));
		p_condition.setBorder(BorderFactory.createCompoundBorder(
	    BorderFactory.createTitledBorder("输入查询条件"), 
	    BorderFactory.createEmptyBorder(5,5,5,5)));
		
		l_contentType=new JLabel("筛选内容");
		c_contentType=new JComboBox(s2);
		b_contentType=new JButton("查询");
		
		
		JPanel p1 = new JPanel();
		p1.setBackground(Color.WHITE);
	    JPanel p2 = new JPanel();
	    p2.setBackground(Color.WHITE);
	    JPanel p3 = new JPanel();
	    p3.setBackground(Color.WHITE);
	    JPanel p4=new JPanel();
	    p4.setBackground(Color.WHITE);
	    JPanel p5=new JPanel();
	    p5.setBackground(Color.WHITE);
	    b_all=new JButton("显示全部");
	    b_all.addActionListener(this);
	    p5.add(b_all);
	    p4.add(l_contentType);
	    p4.add(c_contentType);
	    p4.add(b_contentType);
	    p1.add(l_type);
	    p1.add(c_type);
	    p1.add(b_select1);
	    p2.add(l_fromdate);
		p2.add(datepick1);
		p2.add(l_todate);
		p2.add(datepick2);
		p2.add(b_select2);
		//p3.add(l_ps);
		p_condition.add(p1);
	    p_condition.add(p2);
	    //p_condition.add(p3);
	    p_condition.add(p4);
	    p_condition.add(p5);
        c.add(p_condition,"Center");
                
        b_select1.addActionListener(this);
        b_select2.addActionListener(this);
        b_contentType.addActionListener(this);
        
        
        p_detail=new JPanel();
        p_detail.setBackground(Color.WHITE);
        p_detail.setBorder(BorderFactory.createCompoundBorder(
	    BorderFactory.createTitledBorder("收支明细信息"), 
	    BorderFactory.createEmptyBorder(5,5,5,5)));
        l_bal=new JLabel();
        row = new Object[50][5];
		table = new JTable(row, cloum);
		JScrollPane scrollpane = new JScrollPane(table);
		scrollpane.setPreferredSize(new Dimension(580,350));
		scrollpane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
		scrollpane.setViewportView(table);
		p_detail.add(l_bal);
		p_detail.add(scrollpane);
		c.add(p_detail,"South");		
		 	
		//judgeOver();
		
        this.setResizable(false);
        this.setSize(800,700);
		Dimension screen = this.getToolkit().getScreenSize();
	    this.setLocation((screen.width-this.getSize().width)/2,(screen.height-this.getSize().height)/2);
		this.show();
		startshow();
		
	}

项目总结

     通过此项目,我收获了很多很多,其中最重要的一点是细心和耐心,刚开始的时候不一定要考虑到系统的方方面面,在项目开发的过程中,先画出业务流程图和用例图,把大体框架做好,然后再逐一细化。刚开始不可能做到面面俱到,围绕原型一步步完善。做为系统设计和编码的程序员,要善于思考,以现实为依据,让自己的每一行代码都能实现自己的意义。

通过本次项目的开发和设计,我掌握了事件处理,文件操作,Java UI布局,JDBC、界面美化等知识,并且能够运用到实际项目中,对我以后的学习和就业有非常大的帮助。

 

 

java语言写的android系统,用于个人账目管理课程设计上写的欢迎下载 package moneymanager.moneymanager; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; /* * * 데이터베이스를 관리하는 클래스입니다. * */ public class DBAdapter { private static final String TAG = "NotesDbAdapter"; private DatabaseHelper mDbHelper; private SQLiteDatabase mDb; // 데이터베이스이름과 테블이름들을 정의 private static final String DATABASE_NAME = "MoneyManagerDB"; private static final int DATABASE_VERSION = 2; private static final String DATABASE_SETTING_TABLE = "SettingTbl"; private static final String DATABASE_BADGET_TABLE = "BadgetTbl"; private static final String DATABASE_PAYMENT_TABLE = "PaymentTbl"; // 테블안의 항목들을 정의 public static final String KEY_SETTINGTBL_ID = "ID"; public static final String KEY_SETTINGTBL_NAME = "Name"; public static final String KEY_SETTINGTBL_VALUE = "Value"; public static final String KEY_BADGETTBL_ID = "ID"; public static final String KEY_BADGETTBL_ITEM = "Item"; public static final String KEY_BADGETTBL_MONEY = "Money"; public static final String KEY_PAYMENTTBL_ID = "ID"; public static final String KEY_PAYMENTTBL_BADGETID = "BadgetID"; public static final String KEY_PAYMENTTBL_OUTDATE = "OutDate"; public static final String KEY_PAYMENTTBL_MONEY = "Money"; public static final String KEY_PAYMENTTBL_NOTE = "Note"; private final Context mCtx; private static class DatabaseHelper extends SQLiteOpenHelper { DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { String strCreateTbl; // SettingTbl생성 strCreateTbl = "CREATE TABLE " + DATABASE_SETTING_TABLE + " (" + KEY_SETTINGTBL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_SETTINGTBL_NAME + " TEXT NOT NULL, " + KEY_SETTINGTBL_VALUE + " TEXT NOT NULL);"; db.execSQL(strCreateTbl); // BadgetTbl생성 strCreateTbl = "CREATE TABLE " + DATABASE_BADGET_TABLE + " (" + KEY_BADGETTBL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_BADGETTBL_ITEM + " TEXT NOT NULL, " + KEY_BADGETTBL_MONEY + " INTEGER NOT NULL);"; db.execSQL(strCreateTbl); // PaymentTbl생성 strCreateTbl = "CREATE TABLE " + DATABASE_PAYMENT_TABLE + " (" + KEY_PAYMENTTBL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_PAYMENTTBL_BADGETID + " INTEGER NOT NULL, " + KEY_PAYMENTTBL_OUTDATE + " TEXT NOT NULL, " + KEY_PAYMENTTBL_MONEY + " INTEGER NOT NULL, " + KEY_PAYMENTTBL_NOTE + " TEXT);"; db.execSQL(strCreateTbl); } ......
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机程序

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值