基于java+mysql的swing+mysql银行管理系统+文档java基础gui(java+gui)
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于java的Swing+MySQL银行管理系统+文档java基础gui(java+gui)
功能介绍:
登录、打印、取款、改密、转账、查询、挂失、存款、退卡
}
}
}
}
//按钮事件处理的方法
public void actionPerformed(ActionEvent e) {
if( e.getSource() == returnButton ) {
this.setVisible(false);
}else if(e.getSource() == resetButton) {
withdrawTextField.setText(null);//清空文本域
dao.setTheAccount(Login.getUser());//使得后面调用Account对象的setter方法和getter方法,都是最新的值
balanceTextField.setText(Login.getUser().getBalance());//显示更新数据后的余额
System.out.println("文本域已清空");//测试代码
}else{
// balanceTextField.setText();//显示存款后的余额
// depositTextField.setText(depositTemp);//设置文本
System.out.println(withdrawTextField.getText());//测试代码
this.executeModify(Login.getUser());//执行取款
dao.setTheAccount(Login.getUser());//使得后面调用Account对象的setter方法和getter方法,都是最新的值
System.out.println("操作完成!");//测试代码
}
}
//在本类中定义私有方法——修改取款的方法
private void executeModify(Account user) {
//数据库纪录更新操作sql语句
String sql = "update account set Balance = '" + (Float.parseFloat(user.getBalance()) - Float.parseFloat(withdrawTemp)) + "' where AccountName = '" + user.getAccountName() +"'";
if( (Float.parseFloat(user.getBalance()) <= Float.parseFloat(withdrawTemp) )
|| (Float.parseFloat(withdrawTemp)%100 != 0)
|| (Float.parseFloat(withdrawTemp) > 5000)) {//如果余额小于等于0,则取款失败
JOptionPane.showMessageDialog(null, "余额不足或取款金额不为100的倍数或取款的金额大于5000,,取款失败!请重试!","提示", JOptionPane.INFORMATION_MESSAGE);
System.out.println("余额不足,取款失败!请重试。");
}else {
int result = dao.update(sql);//Dao类的update函数返回一个整形数,更新数据失败则返回0
if( result != 0) {//取款成功
JOptionPane.showMessageDialog(null, "取款成功!已取" + withdrawTemp + "元,目前余额为:" + (Float.parseFloat(user.getBalance()) - Float.parseFloat(withdrawTemp)) + "元","提示", JOptionPane.INFORMATION_MESSAGE);
System.out.println("取款成功!");
}else {//取款失败
JOptionPane.showMessageDialog(null, "余额不足,存款失败!请重试。","提示", JOptionPane.INFORMATION_MESSAGE);
System.out.println("余额不足,取款失败!请重试。");
}
}
}
row[i] = rs.getObject(i).toString();//把一条记录里面的各个数据项都存进row一维数组里面
// }
System.out.println("读取完了第" + (record+1) + "条记录");//测试代码
data[record] = row;
record++;
}while(rs.next());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return data;
}
//执行部分更新
public int update(String sql) {
int result = 0;
Statement stmt;
try {
stmt = connectDatabase.getStatement();
result = stmt.executeUpdate(sql);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}//获取statement对象
return result;
}
//设置更新后的Account的对象
public void setTheAccount(Account user) {
ResultSet rs = findForResultSet(" select * from account where AccountName = '"+ user.getAccountName() +"'");//查询AccountName字段值为name的值的记录
try {
if(rs.next()) {//if(rs.next())判断是否存在数据
user.setAccountName(rs.getString("AccountName")); //匹配的用户名
user.setAccountPassword(rs.getString("AccountPassword"));//对应的密码
user.setChineseName(rs.getString("ChineseName"));//设置中文名
user.setCardNumber(rs.getString("CardNumber"));//设置卡号
user.setBalance(rs.getString("Balance"));//设置余额
user.setManager(rs.getString("Manager"));//设置是否是管理员
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
dao.setTheAccount(Login.getUser());//使得后面调用Account对象的setter方法和getter方法时,是最新的值
System.out.println("操作完成!");//测试代码
}
}
//在本类中定义私有方法——修改密码的方法
private void executeModify(Account user) {
//数据库纪录更新操作sql语句
String sql = "update account set AccountPassword = '" + confirmNewPasswordTemp + "' where AccountName = '" + user.getAccountName() +"'";
int result = dao.update(sql);//Dao类的update函数返回一个整形数,更新数据失败则返回0
if( result != 0) {//改密成功
JOptionPane.showMessageDialog(null, "修改密码成功!","提示", JOptionPane.INFORMATION_MESSAGE);
System.out.println("修改密码成功!");
}else {//改密失败
JOptionPane.showMessageDialog(null, "修改密码失败!请重试。","提示", JOptionPane.INFORMATION_MESSAGE);
System.out.println("修改密码失败!请重试。");
}
}
}
displayTextArea.setBounds(0, 220, 300, 100);
//向窗口添加面板
this.add(chineseNamePanel);
this.add(cardNumberPanel);
this.add(accountNamePanel);
this.add(buttonPanel);
this.add(displayTextArea);
}
//文本域事件的处理方法
public void changedUpdate(DocumentEvent e) {
chineseNameTemp = chineseNameTextField.getText();
cardNumberTemp = cardNumberTextField.getText();
accountNameTemp = accountNameTextField.getText();
System.out.println(chineseNameTemp + cardNumberTemp + accountNameTemp );//测试代码
}
public void insertUpdate(DocumentEvent e) {
chineseNameTemp = chineseNameTextField.getText();
cardNumberTemp = cardNumberTextField.getText();
accountNameTemp = accountNameTextField.getText();
System.out.println(chineseNameTemp + cardNumberTemp + accountNameTemp );//测试代码
}
public void removeUpdate(DocumentEvent e) {
chineseNameTemp = chineseNameTextField.getText();
cardNumberTemp = cardNumberTextField.getText();
accountNameTemp = accountNameTextField.getText();
System.out.println(chineseNameTemp + cardNumberTemp + accountNameTemp );//测试代码
}
//文本框的监听事件
class MyFieldEvent extends KeyAdapter{
public void keyPressed(KeyEvent e) {
if(e.getSource() == accountNameTextField) {
if(e.getKeyCode() == 10) {//10代表回车键
confirmButton.doClick(); //调用确定按钮的单击事件
}
}
}
}
//按钮事件处理的方法
public void actionPerformed(ActionEvent e) {
if( e.getSource() == returnButton ) {
this.setVisible(false);
}else if(e.getSource() == resetButton) {
chineseNameTextField.setText(null);//清空文本域
cardNumberTextField.setText(null);
accountNameTextField.setText(null);
displayTextArea.setText(null);
System.out.println("文本域已清空");
}else{
chineseNameTextField = new JTextField(10);
cardNumberTextField = new JTextField(20);
balanceTextField = new JTextField(10);
managerTextField = new JTextField(10);
//添加文本域事件
accountNameTextField.getDocument().addDocumentListener(this);
accountPasswordTextField.getDocument().addDocumentListener(this);
chineseNameTextField.getDocument().addDocumentListener(this);
cardNumberTextField.getDocument().addDocumentListener(this);
balanceTextField.getDocument().addDocumentListener(this);
managerTextField.getDocument().addDocumentListener(this);
accountNameTextField.addKeyListener(new MyFieldEvent());
accountPasswordTextField.addKeyListener(new MyFieldEvent());
chineseNameTextField.addKeyListener(new MyFieldEvent());
cardNumberTextField.addKeyListener(new MyFieldEvent());
balanceTextField.addKeyListener(new MyFieldEvent());
managerTextField.addKeyListener(new MyFieldEvent());
//初始化按钮
confirmButton = new JButton("确定");
returnButton = new JButton("返回");
//添加按钮事件
confirmButton.addActionListener(this);
returnButton.addActionListener(this);
//初始化面板
accountNamePanel = new JPanel();
accountPasswordPanel = new JPanel();
chineseNamePanel = new JPanel();
cardNumberPanel = new JPanel();
balancePanel = new JPanel();
managerPanel = new JPanel();
buttonPanel = new JPanel();
//向面板添加组件
accountNamePanel.add(accountNameLabel);
accountNamePanel.add(accountNameTextField);
accountPasswordPanel.add(accountPasswordLabel);
accountPasswordPanel.add(accountPasswordTextField);
chineseNamePanel.add(chineseNameLabel);
public class Register extends JFrame implements ActionListener, DocumentListener {
private JLabel accountNameLabel, accountPasswordLabel, chineseNameLabel, cardNumberLabel; //用户,密码,中文名,卡号标签
private JTextField accountNameTextField, accountPasswordTextField, chineseNameTextField, cardNumberTextField;//用户,密码,中文名,卡号文本域
private JButton confirmButton, returnButton; //定义确定按钮,返回按钮
private JPanel accountNamePanel, accountPasswordPanel, chineseNamePanel, cardNumberPanel, buttonPanel;//用户,密码,中文名,卡号标,按钮签面板
private String accountNameTemp, accountPasswordTemp, chineseNameTemp, cardNumberTemp;//缓存
private Dao dao = new Dao();
//有参构造
public Register() {
//设置窗口
this.setTitle("注册");
this.setVisible(true);
this.setSize(400, 400);
this.setLocationRelativeTo(null);//在屏幕中间居中显示
this.setLayout(null);//设置空布局
// //设置更新后的Account对象
// dao.setTheAccount(user);//使得后面调用Account对象的setter方法和getter方法,都是最新的值
//初始化标签
accountNameLabel = new JLabel("用 户:");
accountPasswordLabel = new JLabel("密 码:");
chineseNameLabel = new JLabel("中 文 名:");
cardNumberLabel = new JLabel("卡 号:");
//初始化文本域
accountNameTextField = new JTextField(10);
accountPasswordTextField = new JTextField(20);
chineseNameTextField = new JTextField(10);
cardNumberTextField = new JTextField(20);
// //设置文本域
// System.out.println("余额为:" + user.getBalance());//测试代码
System.out.println("balanceTextField的值为:" + balanceTextField.getText());//测试代码
// balanceTextField.setText(user.getBalance());//在余额文本框显示余额
// balanceTextField.setEditable(false);//设置用户不可在窗口编辑状态
System.out.println("balanceTextField的值为:" + balanceTextField.getText());//测试代码
balanceTextField.setText(String.valueOf(user.getBalance()));//String.valueOf()是将浮点型转换成字符串
balanceTextField.setEditable(false);
//添加文本域事件
accountNameTextField.getDocument().addDocumentListener(this);
accountPasswordTextField.getDocument().addDocumentListener(this);
chineseNameTextField.getDocument().addDocumentListener(this);
cardNumberTextField.getDocument().addDocumentListener(this);
public MainFrame() {
//设置窗口
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(450, 500);
this.setTitle("银行管理系统");
this.setLocation(400, 200);
this.setLocationRelativeTo(null);//在屏幕中间居中显示
this.setLayout(null);//不采用布局
//初始化各个业务按钮
printButton = new JButton("打印");
modifyThePasswordButton = new JButton("改密");
inquiryButton = new JButton("查询");
depositMoneyButton = new JButton("存款");
withdrawMoneyButton = new JButton("取款");
transferMoneyButton = new JButton("转账");
reportTheLostCardButton = new JButton("挂失");
exitButton = new JButton("退卡");
//按钮事件
printButton.addActionListener(this);
modifyThePasswordButton.addActionListener(this);
inquiryButton.addActionListener(this);
depositMoneyButton.addActionListener(this);
withdrawMoneyButton.addActionListener(this);
transferMoneyButton.addActionListener(this);
reportTheLostCardButton.addActionListener(this);
exitButton.addActionListener(this);
//设置按钮的大小
printButton.setBounds( 0,50,90,60);
modifyThePasswordButton.setBounds( 0,150,90,60);
inquiryButton.setBounds( 0,250,90,60);
depositMoneyButton.setBounds(0,350,90,60);
withdrawMoneyButton.setBounds( 354,50,90,60);
transferMoneyButton.setBounds( 354,150,90,60);
reportTheLostCardButton.setBounds( 354,250,90,60);
exitButton.setBounds(354,350,90,60);
//初始化标签
titleLabel = new JLabel("欢迎使用本银行系统");
founderLabel = new JLabel("welcome!!!");
//设置标签的位置和大小
titleLabel.setBounds(110,120,250,50);
founderLabel.setBounds(150,250,150,50);
//设置标签字体
titleLabel.setFont(new Font("Dialog", Font.BOLD, 23));
chineseNameTemp = chineseNameTextField.getText();
cardNumberTemp = cardNumberTextField.getText();
System.out.println(accountNameTemp + chineseNameTemp + cardNumberTemp);//测试代码
}
//文本框的监听事件,转账文本框监听回车键,则执行确定按钮的按钮事件
class MyFieldEvent extends KeyAdapter{ //KeyAdapter为KeyListener的适配器,作用是不需要实现接口里面的全部方法
public void keyPressed(KeyEvent e) {
if(e.getSource() == cardNumberTextField) {
if(e.getKeyCode() == 10) {//10代表回车键
confirmButton.doClick(); //调用确定按钮的单击事件
}
}
}
}
//按钮事件处理的方法
public void actionPerformed(ActionEvent e) {
if( e.getSource() == returnButton ) {
this.setVisible(false);
}else{
// balanceTextField.setText();//显示存款后的余额
// depositTextField.setText(depositTemp);//设置文本
// System.out.println(depositTextField.getText());//测试代码
this.executeRegister();//执行注册的方法
// dao.setTheAccount(Login.getUser());//使得后面调用Account对象的setter方法和getter方法,都是最新的值
System.out.println("操作完成!");//测试代码
}
}
//在本类中定义私有方法——修改存款的方法
private void executeRegister() {
//数据库纪录更新操作sql语句
String sql = "select * from account where AccountName = '" + accountNameTemp + "' and ChineseName = '" + chineseNameTemp + "' and CardNumber = '" + cardNumberTemp + "'";
// int result = dao.update(sql);//Dao类的update函数返回一个整形数,更新数据失败则返回0
rs = dao.findForResultSet(sql);
try {
if(rs.next()) {//如果查询到
JOptionPane.showMessageDialog(this, "密码为:" + rs.getString("AccountPassword"), "提示", JOptionPane.INFORMATION_MESSAGE);
System.out.println(reservePathTemp);//测试代码
}
public void insertUpdate(DocumentEvent e) {
reservePathTemp = reservePathTextField.getText();
filenameTemp = filenameTextField.getText();
System.out.println(reservePathTemp);//测试代码
}
public void removeUpdate(DocumentEvent e) {
reservePathTemp = reservePathTextField.getText();
filenameTemp = filenameTextField.getText();
System.out.println(reservePathTemp);//测试代码
}
//文本框的监听事件,转账文本框监听回车键,则执行确定按钮的按钮事件
class MyFieldEvent extends KeyAdapter{ //KeyAdapter为KeyListener的适配器,作用是不需要实现接口里面的全部方法
public void keyPressed(KeyEvent e) {
if(e.getSource() == filenameTextField) {
if(e.getKeyCode() == 10) {//10代表回车键
printButton.doClick(); //调用确定按钮的单击事件
}
}
}
}
//按钮事件处理的方法
public void actionPerformed(ActionEvent e) {
if( e.getSource() == returnButton ) {
this.setVisible(false);
}else {
System.out.println("文件的路径是:" + reservePathTemp);//测试代码
diretory = new File(reservePathTemp); //实例化file对象,获取目录(文件夹吧)对象
if(!diretory.exists()) { //exists()方法返回boolean值,如果存在目录,则返回true
System.out.println("目录不存在!正在创建目录···");//测试代码
diretory.mkdir(); //创建目录
}
System.out.println("文件名是:" + filenameTemp);//测试代码
file = new File(reservePathTemp, filenameTemp); //用于存储打印信息的文件
if( !file.exists() ) {
try {
file.createNewFile(); //在指定目录下创建文件
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
JOptionPane.showMessageDialog(null, "打印成功,请在您保存的路径查看", "提示", JOptionPane.INFORMATION_MESSAGE);//打印成功就弹出提示框
//测试代码,输出dispalyTextArea的文本
System.out.println("diaplayTextArea里面的文本是:\n" + displayTextArea.getText());
try {
fileWriter = new FileWriter(file);
fileWriter.write(displayTextArea.getText());
fileWriter.flush(); //刷新
fileWriter.close(); //关闭
} catch (IOException e1) {
}else{
// balanceTextField.setText();//显示存款后的余额
// depositTextField.setText(depositTemp);//设置文本
// System.out.println(depositTextField.getText());//测试代码
this.executeRegister();//执行注册的方法
// dao.setTheAccount(Login.getUser());//使得后面调用Account对象的setter方法和getter方法,都是最新的值
System.out.println("操作完成!");//测试代码
}
}
//在本类中定义私有方法——修改存款的方法
private void executeRegister() {
//数据库纪录更新操作sql语句
String sql = "select * from account where AccountName = '" + accountNameTemp + "' and ChineseName = '" + chineseNameTemp + "' and CardNumber = '" + cardNumberTemp + "'";
// int result = dao.update(sql);//Dao类的update函数返回一个整形数,更新数据失败则返回0
rs = dao.findForResultSet(sql);
try {
if(rs.next()) {//如果查询到
JOptionPane.showMessageDialog(this, "密码为:" + rs.getString("AccountPassword"), "提示", JOptionPane.INFORMATION_MESSAGE);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// if( result != 0) {//注册成功
// JOptionPane.showMessageDialog(null, "注册成功!", "提示", JOptionPane.INFORMATION_MESSAGE);
System.out.println("存款成功!");
// }else {//注册失败
// JOptionPane.showMessageDialog(null, "注册失败!请重试。","提示", JOptionPane.INFORMATION_MESSAGE);
System.out.println("存款失败!请重试。");
// }
}
}
accountNamePanel.add(accountNameTextField);
accountPasswordPanel.add(accountPasswordLabel);
accountPasswordPanel.add(accountPasswordTextField);
chineseNamePanel.add(chineseNameLabel);
chineseNamePanel.add(chineseNameTextField);
cardNumberPanel.add(cardNumberLabel);
cardNumberPanel.add(cardNumberTextField);
buttonPanel.add(confirmButton);
buttonPanel.add(returnButton);
//设置面板的边界
accountNamePanel.setBounds(-10, 30, 300, 30);
accountPasswordPanel.setBounds(45, 70, 300, 30);
chineseNamePanel.setBounds(-10, 110, 300, 30);
cardNumberPanel.setBounds(45, 150, 300, 30);
buttonPanel.setBounds(20, 190, 300, 40);
//向窗口添加面板
this.add(accountNamePanel);
this.add(accountPasswordPanel);
this.add(chineseNamePanel);
this.add(cardNumberPanel);
this.add(buttonPanel);
}
//文本域事件的处理方法
public void changedUpdate(DocumentEvent e) {
accountNameTemp = accountNameTextField.getText();
accountPasswordTemp = accountPasswordTextField.getText();
chineseNameTemp = chineseNameTextField.getText();
cardNumberTemp = cardNumberTextField.getText();
System.out.println(accountNameTemp + accountPasswordTemp + chineseNameTemp + cardNumberTemp);//测试代码
}
public void insertUpdate(DocumentEvent e) {
accountNameTemp = accountNameTextField.getText();
accountPasswordTemp = accountPasswordTextField.getText();
chineseNameTemp = chineseNameTextField.getText();
cardNumberTemp = cardNumberTextField.getText();
System.out.println(accountNameTemp + accountPasswordTemp + chineseNameTemp + cardNumberTemp);//测试代码
}
public void removeUpdate(DocumentEvent e) {
accountNameTemp = accountNameTextField.getText();
accountPasswordTemp = accountPasswordTextField.getText();
//测试代码,输出dispalyTextArea的文本
System.out.println("diaplayTextArea里面的文本是:\n" + displayTextArea.getText());
try {
fileWriter = new FileWriter(file);
fileWriter.write(displayTextArea.getText());
fileWriter.flush(); //刷新
fileWriter.close(); //关闭
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
//无参构造
public Login() {
// TODO Auto-generated constructor stub
//设置主窗体
frame = new JFrame("Java银行系统");
frame.setSize(400, 300); //设置窗口大小
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //点击关闭按钮可以关闭窗口
frame.setVisible(true); //设置窗口可见
frame.setLocationRelativeTo(null);//在屏幕中间居中显示
//设置标签
titleLabel = new JLabel("欢迎使用本系统!");
userLabel = new JLabel("用户名:");
passwordLabel = new JLabel("密 码:");
//设置标题标签的字体
titleLabel.setFont(new Font("黑体", Font.BOLD, 30));
//设置文本域
userTextField = new JTextField(20);
passwordField = new JPasswordField(20);
//给文本域添加事件
passwordField.addKeyListener(new MyFieldEvent());
//设置按钮
loginButton = new JButton("登录");
registerButton = new JButton("注册");
forgetPasswordButton = new JButton("忘记密码");
exitButton = new JButton("退出");
//给按钮添加事件
loginButton.addActionListener(new MyButtonEvent());
registerButton.addActionListener(new MyButtonEvent());
forgetPasswordButton.addActionListener(new MyButtonEvent());
exitButton.addActionListener(new MyButtonEvent());
//获取内容面板
container = frame.getContentPane();
//
// final JPanel loginBackgroundPanel = new LoginBackgroundPanel(); //登录界面背景面板
//
// //设置面板
// loginBackgroundPanel.setLayout(null);//设置空布局
// container.add(loginBackgroundPanel);
accountPasswordPanel = new JPanel();
chineseNamePanel = new JPanel();
cardNumberPanel = new JPanel();
buttonPanel = new JPanel();
//向面板添加组件
accountNamePanel.add(accountNameLabel);
accountNamePanel.add(accountNameTextField);
accountPasswordPanel.add(accountPasswordLabel);
accountPasswordPanel.add(accountPasswordTextField);
chineseNamePanel.add(chineseNameLabel);
chineseNamePanel.add(chineseNameTextField);
cardNumberPanel.add(cardNumberLabel);
cardNumberPanel.add(cardNumberTextField);
buttonPanel.add(confirmButton);
buttonPanel.add(returnButton);
//设置面板的边界
accountNamePanel.setBounds(-10, 30, 300, 30);
accountPasswordPanel.setBounds(45, 70, 300, 30);
chineseNamePanel.setBounds(-10, 110, 300, 30);
cardNumberPanel.setBounds(45, 150, 300, 30);
buttonPanel.setBounds(20, 190, 300, 40);
//向窗口添加面板
this.add(accountNamePanel);
this.add(accountPasswordPanel);
this.add(chineseNamePanel);
this.add(cardNumberPanel);
this.add(buttonPanel);
}
//文本域事件的处理方法
public void changedUpdate(DocumentEvent e) {
accountNameTemp = accountNameTextField.getText();
accountPasswordTemp = accountPasswordTextField.getText();
chineseNameTemp = chineseNameTextField.getText();
cardNumberTemp = cardNumberTextField.getText();
System.out.println(accountNameTemp + accountPasswordTemp + chineseNameTemp + cardNumberTemp);//测试代码
}
public void insertUpdate(DocumentEvent e) {
accountNameTemp = accountNameTextField.getText();
accountPasswordTemp = accountPasswordTextField.getText();
chineseNameTemp = chineseNameTextField.getText();
cardNumberTemp = cardNumberTextField.getText();
System.out.println(accountNameTemp + accountPasswordTemp + chineseNameTemp + cardNumberTemp);//测试代码
}
}
//按钮触发方法
public void actionPerformed(ActionEvent e) {
if( e.getActionCommand() == "查询" ) { //getActionCommand()是获得按钮的标签,而getSource获得的是按钮
new InquiryService(Login.getUser()); //实例化查询业务
System.out.println("user的用户名为" + Login.getUser().getChineseName());//测试代码
}else if( e.getActionCommand() == "打印" ) {
new PrintService(Login.getUser());//实例化打印业务
}else if( e.getActionCommand() == "挂失" ) {
new ReportLost(Login.getUser());
}else if( e.getActionCommand() == "改密" ) {
new ModifyPassword(Login.getUser());
}else if( e.getActionCommand() == "存款" ) {
new Deposit(Login.getUser());
}else if( e.getActionCommand() == "取款" ) {
new Withdraw(Login.getUser());
}else if( e.getActionCommand() == "转账" ) {
new Transfer(Login.getUser());
}else if( e.getActionCommand() == "退卡" ) {
int isExit = JOptionPane.showConfirmDialog(null, "确定退出?", "提示", JOptionPane.YES_NO_OPTION);
if( isExit == JOptionPane.YES_OPTION) {
System.out.println("正在退卡···");
System.out.println("退卡成功,请及时拔卡!");
System.exit(0);//正常退出程序
}
}
}
//文本域事件的处理方法
public void changedUpdate(DocumentEvent e) {
reservePathTemp = reservePathTextField.getText();
filenameTemp = filenameTextField.getText();
System.out.println(reservePathTemp);//测试代码
}
public void insertUpdate(DocumentEvent e) {
reservePathTemp = reservePathTextField.getText();
filenameTemp = filenameTextField.getText();
System.out.println(reservePathTemp);//测试代码
}
public void removeUpdate(DocumentEvent e) {
reservePathTemp = reservePathTextField.getText();
filenameTemp = filenameTextField.getText();
System.out.println(reservePathTemp);//测试代码
}
//文本框的监听事件,转账文本框监听回车键,则执行确定按钮的按钮事件
class MyFieldEvent extends KeyAdapter{ //KeyAdapter为KeyListener的适配器,作用是不需要实现接口里面的全部方法
public void keyPressed(KeyEvent e) {
if(e.getSource() == filenameTextField) {
if(e.getKeyCode() == 10) {//10代表回车键
printButton.doClick(); //调用确定按钮的单击事件
}
}
}
}
//按钮事件处理的方法
public void actionPerformed(ActionEvent e) {
if( e.getSource() == returnButton ) {
this.setVisible(false);
}else {
System.out.println("文件的路径是:" + reservePathTemp);//测试代码
diretory = new File(reservePathTemp); //实例化file对象,获取目录(文件夹吧)对象
if(!diretory.exists()) { //exists()方法返回boolean值,如果存在目录,则返回true
System.out.println("目录不存在!正在创建目录···");//测试代码
diretory.mkdir(); //创建目录
}
System.out.println("文件名是:" + filenameTemp);//测试代码
file = new File(reservePathTemp, filenameTemp); //用于存储打印信息的文件
* 注册账户
*/
public class Register extends JFrame implements ActionListener, DocumentListener {
private JLabel accountNameLabel, accountPasswordLabel, chineseNameLabel, cardNumberLabel; //用户,密码,中文名,卡号标签
private JTextField accountNameTextField, accountPasswordTextField, chineseNameTextField, cardNumberTextField;//用户,密码,中文名,卡号文本域
private JButton confirmButton, returnButton; //定义确定按钮,返回按钮
private JPanel accountNamePanel, accountPasswordPanel, chineseNamePanel, cardNumberPanel, buttonPanel;//用户,密码,中文名,卡号标,按钮签面板
private String accountNameTemp, accountPasswordTemp, chineseNameTemp, cardNumberTemp;//缓存
private Dao dao = new Dao();
//有参构造
public Register() {
//设置窗口
this.setTitle("注册");
this.setVisible(true);
this.setSize(400, 400);
this.setLocationRelativeTo(null);//在屏幕中间居中显示
this.setLayout(null);//设置空布局
// //设置更新后的Account对象
// dao.setTheAccount(user);//使得后面调用Account对象的setter方法和getter方法,都是最新的值
//初始化标签
accountNameLabel = new JLabel("用 户:");
accountPasswordLabel = new JLabel("密 码:");
chineseNameLabel = new JLabel("中 文 名:");
cardNumberLabel = new JLabel("卡 号:");
//初始化文本域
accountNameTextField = new JTextField(10);
accountPasswordTextField = new JTextField(20);
chineseNameTextField = new JTextField(10);
cardNumberTextField = new JTextField(20);
// //设置文本域
// System.out.println("余额为:" + user.getBalance());//测试代码
System.out.println("balanceTextField的值为:" + balanceTextField.getText());//测试代码
// balanceTextField.setText(user.getBalance());//在余额文本框显示余额
// balanceTextField.setEditable(false);//设置用户不可在窗口编辑状态
System.out.println("balanceTextField的值为:" + balanceTextField.getText());//测试代码
balanceTextField.setText(String.valueOf(user.getBalance()));//String.valueOf()是将浮点型转换成字符串
confirmNewPasswordPanel = new JPanel();
buttonPanel = new JPanel();
//向面板添加组件
newPasswordPanel.add(newPasswordLabel);
newPasswordPanel.add(newPasswordField);
confirmNewPasswordPanel.add(confirmNewPasswordLabel);
confirmNewPasswordPanel.add(confirmNewPasswordField);
buttonPanel.add(confirmButton);
buttonPanel.add(resetButton);
buttonPanel.add(returnButton);
//设置面板的边界
newPasswordPanel.setBounds(-10, 30, 300, 30);
confirmNewPasswordPanel.setBounds(-10, 70, 300, 30);
buttonPanel.setBounds(-10, 110, 300, 40);
//向窗口添加面板
this.add(newPasswordPanel);
this.add(confirmNewPasswordPanel);
this.add(buttonPanel);
}
//文本域事件的处理方法
public void changedUpdate(DocumentEvent e) {
newPasswordTemp = new String(newPasswordField.getPassword());
confirmNewPasswordTemp = new String(newPasswordField.getPassword());
System.out.println(newPasswordTemp + confirmNewPasswordTemp );//测试代码
}
public void insertUpdate(DocumentEvent e) {
newPasswordTemp = new String(newPasswordField.getPassword());
confirmNewPasswordTemp = new String(newPasswordField.getPassword());
System.out.println(newPasswordTemp + confirmNewPasswordTemp );//测试代码
}
public void removeUpdate(DocumentEvent e) {
newPasswordTemp = new String(newPasswordField.getPassword());
confirmNewPasswordTemp = new String(newPasswordField.getPassword());
System.out.println(newPasswordTemp + confirmNewPasswordTemp );//测试代码
}
//文本框的监听事件,转账文本框监听回车键,则执行确定按钮的按钮事件