基于java+mysql的swing+mysql银行管理系统+文档java基础gui(java+gui)

基于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 );//测试代码
		}
		
		
		//文本框的监听事件,转账文本框监听回车键,则执行确定按钮的按钮事件

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值