基本信息
源码名称:java 银行管理系统源码(入门级,文本型数据库)
源码大小:0.08M
文件格式:.zip
开发语言:Java
更新时间:2018-06-10
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 20 元 
   源码介绍




如果运行时 菜单 或者 按钮 出现乱码 请在【 Run>>Edit Configrations>>VM Options】 增加 -Dfile.encoding=GB18030   ,具体配置见下图




package banksystem.demo;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Dialog;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import java.util.Arrays;

import javax.swing.JDesktopPane;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumnModel;

public class MainFrame extends JFrame {

	private static final JDesktopPane DESKTOP_PANE = new JDesktopPane();
	private static int UserId = 0;
	private JFrame mainFrame;
	private JTable table;
	private AccountTableModel accountModel;

	public MainFrame() {
		super("这是主窗体");
		mainFrame = this;
		// 菜单设置
		JMenuBar menuBar = new JMenuBar();
		this.setJMenuBar(menuBar);
		JMenu reg = new JMenu("注册用户");
		JMenu edit = new JMenu("编辑用户");
		JMenu delete = new JMenu("删除用户");
		JMenu saveortake = new JMenu("存取款");
		JMenu bankstatement = new JMenu("查看流水");
		JMenuItem item1 = new JMenuItem("存入");
		JMenuItem item2 = new JMenuItem("取出");
		Button btn1 = new Button("存款");
		item1.add(btn1);
		Button btn2 = new Button("取款");
		item2.add(btn2);
		saveortake.add(item1);
		saveortake.add(item2);
		menuBar.add(reg);
		menuBar.add(edit);
		menuBar.add(delete);
		menuBar.add(saveortake);
		menuBar.add(bankstatement);
		accountModel = new AccountTableModel();
		table = new JTable(accountModel);
		JScrollPane jsp = new JScrollPane(table);
		jsp.setVisible(true);
		this.add(jsp);
		// this.getContentPane().add(DESKTOP_PANE);
		this.setTitle("银行管理系统");
		this.setSize(400, 200);
		this.setBounds((BankSystem.width - BankSystem.windowsWedth) / 2,
				(BankSystem.height - BankSystem.windowsHeight) / 2, BankSystem.windowsWedth - 150,
				BankSystem.windowsHeight - 150);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
		reg.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				// 注册界面布局
				JFrame frame = new JFrame();
				frame.setTitle("注册界面");
				frame.setSize(500, 200);
				frame.setBounds((BankSystem.width - BankSystem.windowsWedth) / 2,
						(BankSystem.height - BankSystem.windowsHeight) / 2, BankSystem.windowsWedth,
						BankSystem.windowsHeight);
				frame.setLayout(new BorderLayout());
				frame.setVisible(true);
				JPanel panelFirst = new JPanel();// 存放用户名密码
				JPanel panelSecond = new JPanel();// 存放按钮
				panelFirst.setLayout(new GridLayout(22, 22));
				JLabel userLabel = new JLabel("用户名");
				JLabel passLabel = new JLabel("密码");
				JLabel telLabel = new JLabel("电话");
				JTextField userText = new JTextField();
				JTextField passText = new JTextField();
				JTextField telText = new JTextField();
				panelFirst.add(userLabel);
				panelFirst.add(userText);
				panelFirst.add(passLabel);
				panelFirst.add(passText);
				panelFirst.add(telLabel);
				panelFirst.add(telText);
				panelSecond.setLayout(new FlowLayout());
				Button reg = new Button("注册");
				Button cancel = new Button("取消");
				panelSecond.add(reg);
				panelSecond.add(cancel);
				frame.add(panelSecond, BorderLayout.SOUTH);
				frame.add(panelFirst, BorderLayout.NORTH);
				/*
				 * JDialog jdlg = new JDialog(frame, "son", true);// 最后一个参数 true
				 * // 为模态 jdlg.setTitle("注册界面"); jdlg.setSize(500, 200);
				 * jdlg.setBounds((BankSystem.width - BankSystem.windowsWedth) /
				 * 2, (BankSystem.height - BankSystem.windowsHeight) / 2,
				 * BankSystem.windowsWedth, BankSystem.windowsHeight);
				 * jdlg.setLayout(new BorderLayout()); jdlg.setVisible(true);
				 */
				// 注册事件
				reg.addMouseListener(new MouseAdapter() {
					@Override
					public void mouseClicked(MouseEvent e) {
						String userName = userText.getText();
						String passWord = passText.getText();
						String telPhone = telText.getText();
						AccountModel newAccount = new AccountModel(BankSystem.accountLst.size()   1, userName, passWord,
								telPhone, 0.00, false);
						BankSystem.accountLst.add(newAccount);
						try {
							BankSystem.WriteFile(BankSystem.path, newAccount.toString(), true, false);
						} catch (IOException e1) {
							// TODO Auto-generated catch block
							e1.printStackTrace();
						}
						JOptionPane.showMessageDialog(null, "保存成功");
						accountModel.setDataSource(BankSystem.accountLst);
					}
				});
				cancel.addMouseListener(new MouseAdapter() {
					@Override
					public void mouseClicked(MouseEvent e) {
						frame.dispose();
					}
				});
			}

		});
		edit.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				int rowId = table.getSelectedRow();
				if (rowId < 0) {
					JOptionPane.showMessageDialog(null, "请选择一行", "警告", JOptionPane.ERROR_MESSAGE);
					return;
				}
				// 注册界面布局
				JFrame frame = new JFrame();
				frame.setTitle("注册界面");
				frame.setSize(500, 200);
				frame.setBounds((BankSystem.width - BankSystem.windowsWedth) / 2,
						(BankSystem.height - BankSystem.windowsHeight) / 2, BankSystem.windowsWedth,
						BankSystem.windowsHeight);
				JPanel panelFirst = new JPanel();// 存放用户名密码
				JPanel panelSecond = new JPanel();// 存放按钮
				panelFirst.setLayout(new GridLayout(22, 22));
				JLabel userLabel = new JLabel("用户名");
				JLabel passLabel = new JLabel("密码");
				JLabel telLabel = new JLabel("电话");
				JTextField userText = new JTextField();
				JTextField passText = new JTextField();
				JTextField telText = new JTextField();
				panelFirst.add(userLabel);
				panelFirst.add(userText);
				panelFirst.add(passLabel);
				panelFirst.add(passText);
				panelFirst.add(telLabel);
				panelFirst.add(telText);
				panelSecond.setLayout(new FlowLayout());
				Button save = new Button("保存");
				Button cancel = new Button("取消");
				panelSecond.add(save);
				panelSecond.add(cancel);
				frame.setLayout(new BorderLayout());
				frame.add(panelSecond, BorderLayout.SOUTH);
				frame.add(panelFirst, BorderLayout.NORTH);
				frame.setVisible(true);
				userText.setText(table.getValueAt(rowId, 1).toString());
				passText.setText(table.getValueAt(rowId, 2).toString());
				telText.setText(table.getValueAt(rowId, 3).toString());
				UserId = Integer.parseInt(table.getValueAt(rowId, 0).toString());
				// 保存事件
				save.addMouseListener(new MouseAdapter() {
					@Override
					public void mouseClicked(MouseEvent e) {
						String userName = userText.getText();
						String passWord = passText.getText();
						String telPhone = telText.getText();
						AccountModel account = new AccountModel();
						for (int i = 0; i < BankSystem.accountLst.size(); i  ) {
							if (BankSystem.accountLst.get(i).getId() == UserId) {
								account = BankSystem.accountLst.get(i);
								BankSystem.accountLst.remove(account);
								break;
							}
						}
						account.setId(UserId);
						account.setUserName(userName);
						account.setPwd(passWord);
						account.setTelphone(telPhone);
						account.setBalance(account.getBalance());
						BankSystem.accountLst.add(account);
						boolean isAppend = false;
						boolean isNew = true;
						for (AccountModel tmpAcc : BankSystem.accountLst) {
							try {
								BankSystem.WriteFile(BankSystem.path, tmpAcc.toString(), isAppend, isNew);
								isAppend = true;
								isNew = false;
							} catch (IOException e1) {
								// TODO Auto-generated catch block
								e1.printStackTrace();
							}
						}
						JOptionPane.showMessageDialog(null, "编辑成功");
						accountModel.setDataSource(BankSystem.accountLst);
					}
				});
				cancel.addMouseListener(new MouseAdapter() {
					@Override
					public void mouseClicked(MouseEvent e) {
						frame.dispose();
					}
				});

			}
		});
		delete.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				int rowId = table.getSelectedRow();
				if (rowId < 0) {
					JOptionPane.showMessageDialog(null, "请选择一行", "警告", JOptionPane.ERROR_MESSAGE);
					return;
				}
				UserId = Integer.parseInt(table.getValueAt(rowId, 0).toString());
				AccountModel account = new AccountModel();
				for (int i = 0; i < BankSystem.accountLst.size(); i  ) {
					if (BankSystem.accountLst.get(i).getId() == UserId) {
						account = BankSystem.accountLst.get(i);
						BankSystem.accountLst.remove(account);
						break;
					}
				}
				accountModel.setDataSource(BankSystem.accountLst);
				boolean isAppend = false;
				boolean isNew = true;
				for (AccountModel tmpAcc : BankSystem.accountLst) {
					try {
						BankSystem.WriteFile(BankSystem.path, tmpAcc.toString(), isAppend, isNew);
						isAppend = true;
						isNew = false;
					} catch (IOException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}
				}
			}
		});
		btn1.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				int rowId = table.getSelectedRow();
				if (rowId < 0) {
					JOptionPane.showMessageDialog(null, "请选择一行", "警告", JOptionPane.WARNING_MESSAGE);
					return;
				}
				UserId = Integer.parseInt(table.getValueAt(rowId, 0).toString());
				String saveMoney = JOptionPane.showInputDialog("存入多少钱");
				Double money = Double.valueOf(saveMoney);
				AccountModel account = new AccountModel();
				for (int i = 0; i < BankSystem.accountLst.size(); i  ) {
					if (BankSystem.accountLst.get(i).getId() == UserId) {
						account = BankSystem.accountLst.get(i);
						BankSystem.accountLst.remove(account);
						break;
					}
				}
				account.setBalance(account.getBalance()   money);
				BankSystem.accountLst.add(account);
				accountModel.setDataSource(BankSystem.accountLst);
				boolean isAppend = false;
				boolean isNew = true;
				for (AccountModel tmpAcc : BankSystem.accountLst) {
					try {
						BankSystem.WriteFile(BankSystem.path, tmpAcc.toString(), isAppend, isNew);
						isAppend = true;
						isNew = false;
					} catch (IOException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}
				}
				JOptionPane.showMessageDialog(null, " 保存成功");
				BankStatement.CreateBankStatement(
						new BankStatementModel(account.getId(), account.getUserName(), "存入", money));
			}
		});
		btn2.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				int rowId = table.getSelectedRow();
				if (rowId < 0) {
					JOptionPane.showMessageDialog(null, "请选择一行", "警告", JOptionPane.WARNING_MESSAGE);
					return;
				}
				UserId = Integer.parseInt(table.getValueAt(rowId, 0).toString());
				String saveMoney = JOptionPane.showInputDialog("取出多少钱");
				Double money = Double.valueOf(saveMoney);
				AccountModel account = new AccountModel();
				for (int i = 0; i < BankSystem.accountLst.size(); i  ) {
					if (BankSystem.accountLst.get(i).getId() == UserId) {
						account = BankSystem.accountLst.get(i);
						BankSystem.accountLst.remove(account);
						break;
					}
				}
				if (account.getBalance() < money) {
					JOptionPane.showMessageDialog(null, "取出的金额比余额要多", "警告", JOptionPane.ERROR_MESSAGE);
					return;
				}
				account.setBalance(account.getBalance() - money);
				BankSystem.accountLst.add(account);
				accountModel.setDataSource(BankSystem.accountLst);
				boolean isAppend = false;
				boolean isNew = true;
				for (AccountModel tmpAcc : BankSystem.accountLst) {
					try {
						BankSystem.WriteFile(BankSystem.path, tmpAcc.toString(), isAppend, isNew);
						isAppend = true;
						isNew = false;
					} catch (IOException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}
				}
				JOptionPane.showMessageDialog(null, "保存成功");
				BankStatement.CreateBankStatement(
						new BankStatementModel(account.getId(), account.getUserName(), "取出", money));
			}
		});

		bankstatement.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				// BankStatementFrame frame=new BankStatementFrame();
				JFrame frame = new JFrame();
				BankStatementTableModel bankStatementTableModel = new BankStatementTableModel();
				JTable subTable = new JTable(bankStatementTableModel);
				JScrollPane jsp = new JScrollPane(subTable);
				jsp.setVisible(true);
				frame.add(jsp);
				// this.getContentPane().add(DESKTOP_PANE);
				frame.setTitle("银行管理系统");
				frame.setSize(400, 200);
				frame.setBounds((BankSystem.width - BankSystem.windowsWedth) / 2,
						(BankSystem.height - BankSystem.windowsHeight) / 2, BankSystem.windowsWedth - 150,
						BankSystem.windowsHeight - 150);
				frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
				frame.setVisible(true);

			}
		});
	}
}