package javabigwork;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
publicclass LoginFrm extends JFrame implements ActionListener{
private JLabel lblTitle=new JLabel("欢迎进入家庭财务管理系统");
private JLabel lblName=new JLabel("用户名");
private JLabel lblPwd=new JLabel("密码");
private JTextField txtName=new JTextField();
private JPasswordField txtPwd=new JPasswordField();
private JButton btnOk=new JButton("用户登陆");
private JButton btnCancel=new JButton("退出系统");
private String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
private String url = "jdbc:odbc:mydb";
privateint rowcount=0;
public LoginFrm(){
JPaneljp = (JPanel) this.getContentPane();
jp.setLayout(null);
jp.add(lblTitle);
lblTitle.setBounds(300, 50, 200, 50);
jp.add(lblName);lblName.setBounds(200, 100, 100, 20);
jp.add(txtName);txtName.setBounds(500, 100, 100, 20);
jp.add(lblPwd);lblPwd.setBounds(200, 150, 100, 20);
jp.add(txtPwd);txtPwd.setBounds(500, 150, 100, 20);
jp.add(btnOk);btnOk.setBounds(200, 220, 100, 20);
jp.add(btnCancel);btnCancel.setBounds(500, 220, 100, 20);
this.setTitle("家庭用户登陆");
this.setSize(800,400);
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
btnOk.addActionListener(this);
btnCancel.addActionListener(this);
}
publicvoid actionPerformed(ActionEvent e) {
if(e.getSource() == btnOk){
String [][] rows = this.queryCustomers();
String s1=txtName.getText();
String s2=txtPwd.getText();
for(int i=0;i if(s1.equals(rows[i][0])){ if(s2.equals(rows[i][1])){ JOptionPane.showMessageDialog(this, "用户名和密码正确 "); new CustomerFrm(); } else JOptionPane.showMessageDialog(this, "用户名或密码错误"); } } } if(e.getSource() == btnCancel){ System.exit(0); } } public String[][] queryCustomers() { String[][] rows = null; try { Class.forName(driver); Connection con = DriverManager.getConnection(url); Statement cmd = con.createStatement(); String sql = "select count(*) from admin"; ResultSetrs = cmd.executeQuery(sql); rs.next(); rowcount = rs.getInt(1); rows = new String[rowcount][2]; sql = "select * from admin"; rs = cmd.executeQuery(sql); rowcount = 0; while (rs.next()) { for (int i = 1; i<= 2; i++) rows[rowcount][i - 1] = rs.getString(i); rowcount++; } con.close(); } catch (Exception ex) { ex.printStackTrace(); } return rows; } publicstaticvoid main(String[] args){ new LoginFrm(); } } package javabigwork; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.*; publicclass CustomerFrm extends JFrame { privatevoid initMenu(){ JMenuBar bar=new JMenuBar(); JMenu m1=new JMenu("系统功能"); JMenuItem m11=new JMenuItem("用户账单"); JMenuItem m13=new JMenuItem("类别查询"); JMenuItem m14=new JMenuItem("退出系统"); m11.addActionListener(new ActionListener() { publicvoid actionPerformed(ActionEvent e) { YonghuFrm_Clicked(); } }); m13.addActionListener(new ActionListener() { publicvoid actionPerformed(ActionEvent e){ SelectFrm_Clicked(); } }); m14.addActionListener(new ActionListener() { publicvoid actionPerformed(ActionEvent e){ exit_Clicked(); } }); m1.add(m11); m1.add(m13); m1.add(m14); bar.add(m1); this.setJMenuBar(bar); } privatevoid exit_Clicked(){ if (JOptionPane.showConfirmDialog(this, "确认退出?", "退出系统", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION) System.exit(0); } privatevoid YonghuFrm_Clicked(){ new YonghuFrm(); } privatevoid SelectFrm_Clicked(){ new SelectFrm(); } public CustomerFrm(){ JPaneljp = (JPanel) this.getContentPane(); initMenu(); this.setTitle("家庭用户账单查询"); this.setSize(800, 600); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } package javabigwork; import javax.swing.*; import javax.swing.table.DefaultTableModel; import java.awt.*; import java.awt.event.*; import java.sql.*; publicclass YonghuFrm extends JFrame{ private JTable table = null; private String[] cols = { "姓名","性别","账单类型","年份","月份","费用"}; private JButton btnEdit=new JButton("刷新"); private JButton btnAdd=new JButton("添加"); private JButton btnDelete=new JButton("删除"); private CustomerDao CustomerDao = new CustomerDao(); privatevoid initTable() { String[][] rows = CustomerDao.queryCustomer(); table = new JTable(rows, cols); } privatevoid updateTable(){ String[][] rows = CustomerDao.queryCustomer(); table.setModel(new DefaultTableModel(rows, cols)); } public YonghuFrm(){ JPaneljp = (JPanel) this.getContentPane(); initTable(); JScrollPanejsp_table = new JScrollPane(table); jp.add(jsp_table); JPaneljp_top = new JPanel(); jp_top.add(btnEdit); jp_top.add(btnAdd); jp_top.add(btnDelete); jp.add(jp_top, BorderLayout.NORTH); this.setTitle("用户账单"); this.setSize(600, 400); this.setVisible(true); btnEdit.addActionListener(new ActionListener(){ publicvoid actionPerformed(ActionEvent e) { update_Clicked(); } }); btnAdd.addActionListener(new ActionListener(){ publicvoid actionPerformed(ActionEvent e) { AddFrm_Clicked(); } }); btnDelete.addActionListener(new ActionListener(){ publicvoid actionPerformed(ActionEvent e) { btnDelete_Clicked(); } }); } privatevoid update_Clicked(){ updateTable(); } privatevoid AddFrm_Clicked(){ new AddFrm(); } privatevoid btnDelete_Clicked(){ int row = table.getSelectedRow(); if (row > -1) { String name = (String) table.getValueAt(row, 0); CustomerDao.deleteCustomerByname(name); JOptionPane.showMessageDialog(this, "用户" + name + "记录删除成功!"); updateTable(); } } } package javabigwork; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.*; publicclass AddFrm extends JFrame implements ActionListener{ JLabel lblName=new JLabel("姓名"); JLabel lblSex=new JLabel("性别"); JLabel lblYear=new JLabel("年份"); JLabel lblMonth=new JLabel("月份"); JLabel lblBill=new JLabel("账单类型"); JLabel lblFee=new JLabel("费用"); JTextField txtName=new JTextField(); JTextField txtSex=new JTextField(); JTextField txtYear=new JTextField(); JTextField txtMonth=new JTextField(); JTextField txtBill=new JTextField(); JTextField txtFee=new JTextField(); JButton btnAdd=new JButton("添加"); JButton btnCancel=new JButton("取消"); private CustomerDao CustomerDao = new CustomerDao(); public AddFrm(){ JPaneljp=(JPanel)this.getContentPane(); jp.setLayout(new GridLayout(7,2)); jp.add(lblName);jp.add(txtName); jp.add(lblSex);jp.add(txtSex); jp.add(lblYear);jp.add(txtYear); jp.add(lblMonth);jp.add(txtMonth); jp.add(lblBill);jp.add(txtBill); jp.add(lblFee);jp.add(txtFee); jp.add(btnAdd);jp.add(btnCancel); this.setVisible(true); this.setSize(500, 300); this.setTitle("添加用户信息"); btnAdd.addActionListener(this); btnCancel.addActionListener(new ActionListener(){ publicvoid actionPerformed(ActionEvent e){ ReturnFrm_Clicked(); } }); } publicvoid actionPerformed(ActionEvent e) { if(e.getSource()==btnAdd){ String name=txtName.getText(); String sex=txtSex.getText(); int year=Integer.parseInt(txtYear.getText()); int month=Integer.parseInt(txtMonth.getText()); String bill=txtBill.getText(); int fee=Integer.parseInt(txtFee.getText()); CustomerDao.addCustomer(name, sex, bill,year, month , fee); JOptionPane.showMessageDialog(this, "用户为" + name + "信息添加成功!"); } } privatevoid ReturnFrm_Clicked(){ new YonghuFrm(); } } package javabigwork; import javax.swing.*; import javax.swing.border.TitledBorder; import javax.swing.table.DefaultTableModel; import java.awt.*; import java.awt.event.*; import java.sql.*; publicclass SelectFrm extends JFrame{ String[] y={"2012","2013","2014"}; String[] m={"全年","1","2","3","4","5","6","7","8","9","10","11","12"}; JComboBox yearBox=new JComboBox(y); JComboBox monthBox=new JComboBox(m); JLabel lblYear=new JLabel("年份"); JLabel lblMonth=new JLabel("月份"); JLabel lblSearchname=new JLabel("请输入用户姓名"); JLabel lblSearchtype=new JLabel("请输入账单类型"); JLabel lblMoney=new JLabel("请输入金额范围"); JLabel lblSign=new JLabel("——"); JTextField txtKeyword1=new JTextField(10); JTextField txtKeyword2=new JTextField(10); JTextField txtMoney1=new JTextField(5); JTextField txtMoney2=new JTextField(5); JButton btnSearch1=new JButton("查询"); JButton btnSearch2=new JButton("查询"); JButton btnSearch3=new JButton("查询"); JButton btnSearch4=new JButton("查询"); String[][] rows;String[][] rows1; private CustomerDao CustomerDao = new CustomerDao(); private JTable table = null; private String[] cols = { "姓名","性别","账单类型","年份","月份","费用"}; privatevoid initTable() { String[][] rows = CustomerDao.queryCustomer(); table = new JTable(rows, cols); } public SelectFrm(){ JPanel container=(JPanel)this.getContentPane(); container.setLayout(null); JPanel jp1=new JPanel(); jp1.setLayout(new FlowLayout()); jp1.setBorder(new TitledBorder("按时间查询")); jp1.add(lblYear);jp1.add(yearBox);jp1.add(lblMonth);jp1.add(monthBox);j p1.add(btnSearch1); JPanel jp2=new JPanel(); jp2.setLayout(new FlowLayout()); jp2.setBorder(new TitledBorder("按关键字查询")); jp2.add(lblSearchname);jp2.add(txtKeyword1);jp2.add(btnSearch4);jp2.add (lblSearchtype);jp2.add(txtKeyword2);jp2.add(btnSearch2); JPanel jp3=new JPanel(); jp3.setLayout(new FlowLayout()); jp3.setBorder(new TitledBorder("按金额范围查询")); jp3.add(lblMoney);jp3.add(txtMoney1);jp3.add(lblSign);jp3.add(txtMoney2 );jp3.add(btnSearch3); initTable(); JScrollPanejsp_table = new JScrollPane(table); container.add(jp1);jp1.setBounds(0, 0, 800, 70); container.add(jp2);jp2.setBounds(0, 70, 800, 70); container.add(jp3);jp3.setBounds(0, 140, 800, 70); container.add(jsp_table);jsp_table.setBounds(0, 220, 800, 400); this.setVisible(true); this.setSize(800,600); this.validate(); btnSearch1.addActionListener(new ActionListener(){ publicvoid actionPerformed(ActionEvent e){ String y=(String) yearBox.getItemAt(yearBox.getSelectedIndex()); String m=(String) monthBox.getItemAt(monthBox.getSelectedIndex()); if(m=="全年"){ rows=CustomerDao.Selectyear(y); table.setModel(new DefaultTableModel(rows, cols)); }else{ rows=CustomerDao.Selectyearmonth(y,m); table.setModel(new DefaultTableModel(rows, cols)); } } }); btnSearch4.addActionListener(new ActionListener(){ publicvoid actionPerformed(ActionEvent e){ rows=CustomerDao.Selectkeywordname(txtKeyword1.getText()); table.setModel(new DefaultTableModel(rows, cols)); } }); btnSearch3.addActionListener(new ActionListener(){ publicvoid actionPerformed(ActionEvent e){ int a=Integer.parseInt(txtMoney1.getText()); int b=Integer.parseInt(txtMoney2.getText()); rows=CustomerDao.Selectmoneyrange(a, b); table.setModel(new DefaultTableModel(rows, cols)); } }); btnSearch2.addActionListener(new ActionListener(){ publicvoid actionPerformed(ActionEvent e){ rows=CustomerDao.Selectkeywordtype(txtKeyword2.getText()); table.setModel(new DefaultTableModel(rows, cols)); } }); } } package javabigwork; import java.sql.*; publicclass CustomerDao { private String driver = "sun.jdbc.odbc.JdbcOdbcDriver"; private String url = "jdbc:odbc:mydb"; privatevoid executeUpdate(String sql) { try { Class.forName(driver); Connection con = DriverManager.getConnection(url); Statement cmd = con.createStatement(); cmd.executeUpdate(sql); con.close(); } catch (Exception ex) { ex.printStackTrace(); } } publicvoid addCustomer(String name, String sex,String bill, int year, int month,int fee) { String sql = "insert into customer values('" + name + "','" + sex + "','"+bill+"'," + year + "," + month + ","+fee+")"; executeUpdate(sql); } publicvoid deleteCustomerByname(String name) { String sql = "delete from customer where 姓名='"+ name +"'"; executeUpdate(sql); } /*public void updateCustomer(String name){ String sql = "update customer set where name='" + name +"'"; executeUpdate(sql); }*/ public String[][] queryCustomer() { String[][] rows = null; try { Class.forName(driver); Connection con = DriverManager.getConnection(url); Statement cmd = con.createStatement(); String sql = "select count(*) from customer"; ResultSetrs = cmd.executeQuery(sql); rs.next(); int rowcount = rs.getInt(1); rows = new String[rowcount][6]; sql = "select * from customer"; rs = cmd.executeQuery(sql); rowcount = 0; while (rs.next()) { for (int i = 1; i<= 6; i++) rows[rowcount][i - 1] = rs.getString(i); rowcount++; } con.close(); } catch (Exception ex) { ex.printStackTrace(); } return rows; } public String[][] Selectyear(String year) { String[][] rows=null; try{ Class.forName(driver); Connection con = DriverManager.getConnection(url); Statement cmd = con.createStatement(); String sql="select count(*) from customer where 年份="+Integer.parseInt(year)+" "; ResultSetrs = cmd.executeQuery(sql); rs.next(); int rowcount = rs.getInt(1); rows = new String[rowcount][6]; sql="select * from customer where 年份="+Integer.parseInt(year)+" "; rs = cmd.executeQuery(sql); rowcount = 0; while (rs.next()) { for (int i = 1; i<= 6; i++) rows[rowcount][i - 1] = rs.getString(i); rowcount++; } con.close(); }catch(Exception ex){ ex.printStackTrace(); } return rows; } public String[][] Selectyearmonth(String year,String month){ String[][] rows=null; try{ Class.forName(driver); Connection con = DriverManager.getConnection(url); Statement cmd = con.createStatement(); String sql="select count(*) from customer "; ResultSetrs = cmd.executeQuery(sql); rs.next(); int rowcount = rs.getInt(1); rows = new String[rowcount][6]; sql="select * from customer where 年份="+Integer.parseInt(year)+" and 月份="+Integer.parseInt(month)+" "; rs = cmd.executeQuery(sql); rowcount = 0; while (rs.next()) { for (int i = 1; i<= 6; i++) rows[rowcount][i - 1] = rs.getString(i); rowcount++; } con.close(); }catch(Exception ex){ ex.printStackTrace(); } return rows; } public String[][] Selectkeywordname(String s){ String[][] rows=null; try{ Class.forName(driver); Connection con = DriverManager.getConnection(url); Statement cmd = con.createStatement(); String sql="select count(*) from customer where 姓名='"+s+"'"; ResultSetrs = cmd.executeQuery(sql); rs.next(); int rowcount = rs.getInt(1); rows = new String[rowcount][6]; sql="select * from customer where 姓名='"+s+"' "; rs = cmd.executeQuery(sql); rowcount = 0; while (rs.next()) { for (int i = 1; i<= 6; i++) rows[rowcount][i - 1] = rs.getString(i); rowcount++; } con.close(); }catch(Exception ex){ ex.printStackTrace(); } return rows; } public String[][] Selectkeywordtype(String s){ String[][] rows=null; try{ Class.forName(driver); Connection con = DriverManager.getConnection(url); Statement cmd = con.createStatement(); String sql="select count(*) from customer where 账单类型='"+s+"'"; ResultSetrs = cmd.executeQuery(sql); rs.next(); int rowcount = rs.getInt(1); rows = new String[rowcount][6]; sql="select * from customer where 账单类型='"+s+"' "; rs = cmd.executeQuery(sql); rowcount = 0; while (rs.next()) { for (int i = 1; i<= 6; i++) rows[rowcount][i - 1] = rs.getString(i); rowcount++; } con.close(); }catch(Exception ex){ ex.printStackTrace(); } return rows; } public String[][] Selectmoneyrange(int a,int b){ String[][] rows=null; try{ Class.forName(driver); Connection con = DriverManager.getConnection(url); Statement cmd = con.createStatement(); String sql="select count(*) from customer "; ResultSetrs = cmd.executeQuery(sql); rs.next(); int rowcount = rs.getInt(1); rows = new String[rowcount][6]; sql="select * from customer where 费用 between "+a+" and "+b+" "; rs = cmd.executeQuery(sql); rowcount = 0; while (rs.next()) { for (int i = 1; i<= 6; i++) rows[rowcount][i - 1] = rs.getString(i); rowcount++; } con.close(); }catch(Exception ex){ ex.printStackTrace(); } return rows; } }