个人财务管理系统_个人财务管理系统c
个人财务管理系统由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“个人财务管理系统c”。
//引入包
import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.*;import java.text.DateFormat;import java.text.SimpleDateFormat;import org.apache.log4j.*;import java.util.Calendar;import java.util.Vector;import javax.swing.*;import javax.swing.table.DefaultTableModel;
public cla MainTest extends JFrame{
public static final long serialVersionUID = 1l;Vector v=new Vector();private JButton jb1,jb2,jb3,jb4,jb5,jtf3Listener;//按钮 private JScrollPane jsp;//滚动条 private JPanel jp1,jp2,jp3,jp4,jp5,jp6,jserver,jtable;//控件面板
private JLabel jl1,jl2,jl3,jl4,jl5;//标签 private JMenu jm1,jm2;//菜单 private JMenuItem ji1,ji2;//菜单子项 //表格
BankCard bc=new BankCard();//新建类BankCard boolean flag=false;private String version=“V1.5”;private JTextField jtf,jtf2,jtf3,jtf4,jtf5;//文本框
private JMenuBar jmb1;//菜单栏
DefaultTableModel model = new DefaultTableModel();String[] columnNames={“姓名”,“金额”,“日期”,“备注”};//创建日志记录器
private static Logger logger=Logger.getLogger(MainTest.cla.getName());
//主程序入口
public static void main(String[] args){ new MainTest();
//窗口初始化
public MainTest(){ }
//窗口初始化
this.setTitle(“个人财务管理系统”+version+“(内测版By ZQ)”);this.setSize(800,300);this.setLocation(450, 300);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);GridLayout Grid=new GridLayout(1,2);this.setLayout(Grid);this.setResizable(true);
jserver=new JPanel(new GridLayout(7,1));jtable=new JPanel(Grid);
//菜单栏构建
jmb1=new JMenuBar();jm1=new JMenu();jm1.setText(“帮助”);jm2=new JMenu();jm2.setText(“文件”);ji1=new JMenuItem();ji1.setText(“软件须知”);ji1.addActionListener(new MyBtnListener());ji2=new JMenuItem();ji2.setText(“退出”);ji2.addActionListener(new MyBtnListener());jb4=new JButton(“连接”);jb4.addActionListener(new MyBtnListener());jb5=new JButton(“断开”);jb5.addActionListener(new MyBtnListener());jm1.add(ji1);jm2.add(ji2);jmb1.add(jm2);jmb1.add(jm1);jmb1.add(jb4);jmb1.add(jb5);jserver.add(jmb1);
//信息录入框(Label+Meage)jp1=new JPanel();jl1=new JLabel(“姓 名:”);jtf=new JTextField(20);jp1.add(jl1);jp1.add(jtf);jserver.add(jp1);
jp2=new JPanel();jl2=new JLabel(“金 额:”);jtf2=new JTextField(20);jp2.add(jl2);jp2.add(jtf2);jserver.add(jp2);
jp3=new JPanel();jl3=new JLabel(“日 期:”);jtf3=new JTextField(14);jtf3Listener=new JButton(“选择”);jtf3Listener.addActionListener(new MyBtnListener());jp3.add(jl3);jp3.add(jtf3);jp3.add(jtf3Listener);jserver.add(jp3);
jp4=new JPanel();jl4=new JLabel(“备 注:”);jtf4=new JTextField(20);jp4.add(jl4);jp4.add(jtf4);jserver.add(jp4);
//服务器连接按钮
jp5=new JPanel();jl5=new JLabel(“服务器:”);jtf5=new JTextField(20);jtf5.setText(“localhost:1433”);jp5.add(jl5);jp5.add(jtf5);jserver.add(jp5);//信息检索 jp6=new JPanel();
jb1=new JButton(“添加”);/* * URL url=MainTest.cla.getResource(“20***7527_easyicon_net_128.png”);
Icon icon=new ImageIcon(url);jb1.setIcon(icon);*/ jb1.addActionListener(new MyBtnListener());jb2=new JButton(“查询”);jb2.addActionListener(new MyBtnListener());jb3=new JButton(“余额”);
jb3.addActionListener(new MyBtnListener());jp6.add(jb1);jp6.add(jb2);jp6.add(jb3);jserver.add(jp6);
//创建表格------model.setColumnIdentifiers(columnNames);JTable jt1 = new JTable(null, columnNames);
jt1=new JTable(model);model.addRow(new String[]{“”,“”,“”,“”});jt1.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);jt1.setFillsViewportHeight(true);jsp=new JScrollPane(jt1);jtable.add(jsp);
this.add(jserver);this.add(jtable);this.setVisible(true);}
public void TableValue(String[] s){ model.addRow(s);} public cla BankCard { private int meage = 0;String Name=“”;String sql=“”;Date Date=null;int Money;int i=0;Connection conn=null;Statement stmt=null;ResultSet rs=null;PreparedStatement pstmt = null;ResultSetMetaData rsmd = null;Object =null;
public int Save(Person p){ //数据存储 try{
int sum=getSum();if(p.Moneysum){
meage=0;}else{ stmt = conn.createStatement();
sql= “insert into BankCard(Name,Money,Date,Meage)” +
“values('”+p.Name+“',”+p.Money+“,'”+p.Date+“','”+p.Meage+“')”;stmt.execute(sql);System.out.println(p);System.out.println();
System.out.println(“添加成功!”);meage=1;} }catch(SQLException e3){logger.error(e3);} return meage;} /* public void getMeage(String name,String date){ //检索对象信息
Person p=new Person();
} System.out.println();System.out.println(“---------------检索结 try{
sql=”Select * from BankCard Where Name=“+”'“+name+”' and
pstmt = conn.prepareStatement(sql.toString());
rs = pstmt.executeQuery();rsmd = rs.getMetaData();while(rs.next()){
p.Name=rs.getString(“Name”);p.Date=rs.getString(“Date”);p.Meage=rs.getString(“Meage”);p.Money=rs.getInt(“Money”);Date=“+”'“+date+”'“;束!---------------”);
}catch(SQLException e3){logger.error(e3);} }*/ public void getMeage(String Meage,int idea){ //检索对象信息
Person p=new Person();model.setRowCount(0);
try{
if(Meage!=“null” && idea==1){ //输入null查询所有数据
sql=“Select * from BankCard Where
}else if(Meage!=”null“ && idea==2){
sql=”Select * from BankCard Where Name=“+”'“+Meage+”'“;sql=”Select * from BankCard“;
}else {
}
pstmt = conn.prepareStatement(sql.toString());rs = pstmt.executeQuery();rsmd = rs.getMetaData();Date=”+“'”+Meage+“'”;
if(rs.next()==false){JOptionPane.showMeageDialog(getContentPane(),“没有记录,请确认信息是否正确”,“警告!”,JOptionPane.WARNING_MESSAGE);}
do{
p.Name=rs.getString(“Name”);p.Date=rs.getString(“Date”);p.Meage=rs.getString(“Meage”);p.Money=rs.getInt(“Money”);model.addRow(new System.out.println(p);}while(rs.next());String[]{p.Name,String.valueOf(p.Money),p.Date,p.Meage});System.out.println();System.out.println(“---------------检索结束!---------------”);
}catch(SQLException e3){logger.error(e3);} } public int getSum(){ //获取余额
sql=“Select * from BankCard”;rs = pstmt.executeQuery();rsmd = rs.getMetaData();while(rs.next()){ Sum+=rs.getInt(“Money”);} }catch(SQLException e3){logger.error(e3);} pstmt = conn.prepareStatement(sql.toString());int Sum = 0;try{ System.out.println();return Sum;} public int getDay(){ //获取当月天数
Calendar aCalendar=Calendar.getInstance();int Day=aCalendar.get(Calendar.DATE);return Day;} public void Advise(){ //友情提示入口
int Sum = 0;
int Sum1= 0;int Day=getDay();try{ sql=“Select * from BankCard”;rs = pstmt.executeQuery();rsmd = rs.getMetaData();while(rs.next()){
Sum1+=rs.getInt(“Money”);
if(rs.getInt(“Money”)Sum1){ pstmt = conn.prepareStatement(sql.toString());JOptionPane.showMeageDialog(null,“友情提示,截至本月”+Day+“日您已花费:”+(-Sum)+“元----”+“当前余额:”+Sum1+“元”,“警告!”,JOptionPane.WARNING_MESSAGE);}
public boolean testJDBC(String testJDBC){ //建立服务器连接 boolean flag=true;
//[2]建立连接 try{ String sql=“jdbc:sqlserver://”+testJDBC+“;DataBaseName=MoneyManager”;conn=DriverManager.getConnection(sql,“Welcome”,“zhang1298”);
//conn=DriverManager.getConnection(“jdbc:sqlserver://localhost:1433;DataBaseName=MoneyManager”,“sa”,“zhang1298”);System.out.println(“----——--------建立连接成功!------------”);try{ //[1]加载驱动
Cla.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);} }catch(ClaNotFoundException e1){logger.error(e1);} System.out.println();Advise();}catch(SQLException e){logger.error(e);flag=false;} return flag;} public boolean ExitJDBC(){ //断开服务器连接
boolean flag=true;
}
public cla FrameChange implements Runnable {
public void run(){ int x = MainTest.this.getX();try{
//关闭数据连接
if(null!= stmt){ stmt.close();} if(null!= conn){conn.close();} System.out.println(“-------------数据库关闭成功!-----------”);System.out.println();}catch(SQLException e2){logger.equals(e2);flag=false;} return flag;}
int y = MainTest.this.getY();
for(int i = 0;i
if((i & 1)== 0){
x += 3;
y += 3;
} else {
x-= 3;
y-= 3;
}
MainTest.this.setLocation(x, y);
try {
}
} Thread.sleep(5);// TODO Auto-generated catch block e.printStackTrace();} catch(InterruptedException e){ } }
//添加信息
if(arg0.getSource()==jb1){
public void actionPerformed(ActionEvent arg0){ try{ //按钮监听器
cla MyBtnListener implements ActionListener{ if(jtf.getText().length()!=0&&jtf3.getText().length()!=0&&jtf2.getText().length()!=0){
Person p=new Person();p.Name=jtf.getText();
p.Money=Integer.parseInt(jtf2.getText());p.Date=jtf3.getText();p.Meage=jtf4.getText();int
n=JOptionPane.showConfirmDialog(getContentPane(),“请确认信息,一旦添加无法更改”,“信息确认!”,JOptionPane.YES_NO_CANCEL_OPTION);
if(n==JOptionPane.YES_OPTION){
int meage=bc.Save(p);if(meage==0){
JOptionPane.showMeageDialog(getContentPane(),“当前余额:”+bc.getSum()+“元,小于您的取款要求:”+-p.Money+“元,请检查信息是否错误!”,“警告!”,JOptionPane.WARNING_MESSAGE);
jtf2.setText(“”);
}else if(meage==1){
jtf.setText(“”);
jtf2.setText(“”);
jtf3.setText(“”);
jtf4.setText(“”);
}
} }else{
new FrameChange().run();
JOptionPane.showMeageDialog(getContentPane(),“请输入完整信息”,“警告!”,JOptionPane.WARNING_MESSAGE);
}
//查询信息 }else if(arg0.getSource()==jb2){
if(jtf.getText().length()==0 && jtf3.getText().length()==0){ //查询所有
bc.getMeage(“null”,0);
}else if(jtf.getText().length()==0&&jtf3.getText().length()!=0){ //按日期查询
bc.getMeage(jtf3.getText().toString(),1);
}else if(jtf.getText().length()!=0&&jtf3.getText().length()==0){ //按人名查询
bc.getMeage(jtf.getText().toString(),2);}
/*else if(jtf.getText().length()!=0&&jtf3.getText().length()!=0){ //按日期,人名查询
bc.getMeage(jtf.getText(), jtf3.getText());}*/ //查询余额
}else if(arg0.getSource()==jb3){
int Sum=bc.getSum();
JOptionPane.showMeageDialog(getContentPane(),“当前余额:”+Sum+“元”,“余额查询”,JOptionPane.WARNING_MESSAGE);
//连接服务器
}else if(arg0.getSource()==jb4){
flag=bc.testJDBC(jtf5.getText());
if(flag){
jtf5.setText(“已连接服务器”);jtf5.setEditable(false);jb4.setEnabled(false);JOptionPane.showMeageDialog(getContentPane(),“
}else{ 无法连接到数据库,服务器未打开或端口错误”,“警告”,JOptionPane.WARNING_MESSAGE);
} //断开连接
}else if(arg0.getSource()==jb5){
flag=bc.ExitJDBC();
if(flag){ JOptionPane.showMeageDialog(getContentPane(),“已断开服务器!”,“提示”,JOptionPane.WARNING_MESSAGE);
jtf5.setText(“localhost:1433”);jtf5.setEditable(true);jb4.setEnabled(true);JOptionPane.showMeageDialog(getContentPane(),“
}else{ 数据库断开失败,请重试”,“提示”,JOptionPane.WARNING_MESSAGE);
}
//(菜单)帮助-软件介绍
}else if(arg0.getSource()==ji1){ JOptionPane.showMeageDialog(getContentPane(),“软件名称:个人财务管理系统n软件版本:”+version+“(内测版本)n作 者:张强n更新时间:2015-5-24”,“软件简介”,JOptionPane.WARNING_MESSAGE);
;
cldMax=format.format(calendar1.getTime());while(!cld.equals(cldMax)){
//日期选择
}else if(arg0.getSource()==jtf3Listener){
try {
int i=0;
String[] poible =new String[31];DateFormat format = new
Calendar calendar=Calendar.getInstance();Calendar calendar1=Calendar.getInstance();String cld,cldMax;
cld=format.format(calendar.getTime());
//(菜单)文件-退出
}else if(arg0.getSource()==ji2){ int x=MainTest.this.getX();int y=MainTest.this.getY();
for(int i = 0;i
x=x-3;
y=y-2;
MainTest.this.setSize(x, y);
Thread.sleep(1);
}
System.exit(0);SimpleDateFormat(“yyyy-M-dd”);calendar.set(Calendar.DATE,calendar.getActualMinimum(Calendar.DATE));calendar1.set(Calendar.DATE,calendar.getActualMaximum(Calendar.DATE))
poible[i]=cld;
calendar.add(Calendar.DAY_OF_MONTH,1);
cld=format.format(calendar.getTime());
}
poible[i]=cld;String i=i+1;selectedValue=JOptionPane.showInputDialog(null,“请选择:”,“日期”, JOptionPane.INFORMATION_MESSAGE, null, poible, poible[0]).toString();
}
if(selectedValue!=“”){
jtf3.setText(selectedValue);}else{}
// TODO Auto-generated catch block
} catch(Exception e){ } }catch(Exception e){new FrameChange().run();JOptionPane.showMeageDialog(getContentPane(),“请先连接服务器”,“警告!”,JOptionPane.WARNING_MESSAGE);
} //System.out.println(“请先连接服务器”);} }
} }
public cla Person {
String Name=“”;
int Money;
String Date=null;
String Meage=null;public Person(){};
public Person(String name, int money,String date,String Meage){
}
public String toString(){ return “姓名:” + Name + “ 金额:” + Money + “ 日期:” + Date +“ 备super();Name = name;Money = money;this.Date = date;this.Meage=Meage;
注:”+ Meage;} }