📄 bankatm.java
字号:
/* * 本类实现不同ATM处访问同一个账户的情况 */package guiPackage;import static userPackage.ManageUser.findUser;import java.awt.BorderLayout;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;public class BankATM implements ActionListener{ private JFrame frame; private Container contentPane; private JButton okBtn,viewBtn,certainBtn,saveBtn,getBtn,exitBtn; private JTextField inputField; private JLabel message; private double value=0.0; private String name; private String password; public BankATM(int i,String subName,String subPassword) { this.name=subName; this.password=subPassword; frame=new JFrame(i+" 号ATM取款机"); frame.setBounds(80+(i-1)*310,400,300,300); frame.setResizable(false); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); contentPane=frame.getContentPane(); initGUI(); } public void initGUI() { contentPane.setLayout(new BorderLayout()); saveBtn=new JButton("存款"); okBtn=new JButton("确定"); okBtn.setVisible(false); viewBtn=new JButton("查看"); getBtn=new JButton("取款"); certainBtn=new JButton("确定"); exitBtn=new JButton("退出"); certainBtn.setVisible(false); JPanel p1=new JPanel(); JPanel p2=new JPanel(new GridLayout(2,3,5,5)); inputField=new JTextField("",10); inputField.setVisible(false); message=new JLabel("欢迎您使用ATM自动取款机!"); System.out.println(name); System.out.println(password); p1.add(message); p1.add(inputField); p2.add(saveBtn); p2.add(okBtn); p2.add(viewBtn); p2.add(getBtn); p2.add(certainBtn); p2.add(exitBtn); contentPane.add(p1,BorderLayout.CENTER); contentPane.add(p2,BorderLayout.SOUTH); okBtn.addActionListener(this); viewBtn.addActionListener(this); certainBtn.addActionListener(this); saveBtn.addActionListener(this); getBtn.addActionListener(this); exitBtn.addActionListener(this); } public void actionPerformed(ActionEvent e) { if(e.getSource()==okBtn) { String s=inputField.getText().trim(); if(s.length()!=0) { double amount=Double.parseDouble(s); if(findUser(this.name,this.password).getAccount().deposit(amount)) new putMoney(amount); } else message.setText("请正确输入!"); inputField.grabFocus(); } if(e.getSource()==viewBtn) { new viewMoney(); inputField.setEnabled(false); inputField.setVisible(false); certainBtn.setVisible(false); okBtn.setVisible(false); saveBtn.setVisible(true); getBtn.setVisible(true); } if(e.getSource()==certainBtn) { String s=inputField.getText().trim(); if(s.length()!=0) { double amount=Double.parseDouble(s); //System.out.println("name:"+name+"password:"+password); new getMoney(amount); //if(findUser(name, password).getAccount().withdraw(amount)) //new getMoney(amount); } else message.setText("请正确输入!"); inputField.grabFocus(); } if(e.getSource()==saveBtn) { saveBtn.setVisible(true); getBtn.setVisible(false); certainBtn.setVisible(false); okBtn.setVisible(true); message.setText("请输入存款金额:"); inputField.setEnabled(true); inputField.setVisible(true); inputField.setText(""); inputField.grabFocus(); } if(e.getSource()==getBtn) { certainBtn.setVisible(true); okBtn.setVisible(false); saveBtn.setVisible(true); message.setText("请输入取款金额:"); inputField.setEnabled(true); inputField.setVisible(true); inputField.setText(""); inputField.grabFocus(); } if(e.getSource()==exitBtn) { frame.hide(); } } synchronized public void put(double k) { if(k%10==0) { double value = (findUser(this.name,this.password).getAccount().getBalance()); //value=value+k; message.setText("ATM机存款"+k+"元,现在您的余额:"+value); inputField.setVisible(false); okBtn.setVisible(false); getBtn.setVisible(true); } else message.setText("ATM机最低面值为50元!请正确输入!"); } synchronized public void get(double k) { value=findUser(name, password).getAccount().getBalance(); if(value-k<0){ message.setText("对不起!你的账户余额不足!"); inputField.setVisible(false); certainBtn.setVisible(false); }else if(value>=k&&k>=50&&k%10==0) { findUser(name, password).getAccount().withdraw(k); //double value = (findUser(name, password).getAccount().getBalance()); //value=value-k; value=findUser(name, password).getAccount().getBalance(); message.setText("ATM机取款"+k+"元,现在您的余额:"+value); inputField.setVisible(false); certainBtn.setVisible(false); saveBtn.setVisible(true); } else message.setText("ATM机最低面值为50元!请正确输入!"); } public void view() { double value = (findUser(name, password).getAccount().getBalance()); message.setText("您帐户的余额:"+value); } class putMoney implements Runnable { private double value; public putMoney(double value) { this.value=value; (new Thread(this)).start(); } public void run() { put(value); } } class getMoney extends Thread { private double value; public getMoney(double value) { this.value=value; (new Thread(this)).start(); } public void run() { get(value); } } class viewMoney extends Thread { public viewMoney() { (new Thread(this)).start(); } public void run() { view(); } } public void go() { frame.setVisible(true); } /*public static void main(String args[]) { (new bank(1)).go(); (new bank(2)).go(); (new bank(3)).go(); }*/}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -