📄 bamclient.java
字号:
package bamclient;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import exception.*;
import model.*;
import business.Bank;
public class BAMClient {
JFrame frame;
MainPanel mp=new MainPanel();
RegisterPanel rp=new RegisterPanel();
LoginPanel lp=new LoginPanel();
BusinessPanel bp=new BusinessPanel();
CardLayout layout=new CardLayout();
Account account;
public BAMClient(){
frame=new JFrame("BAM Client");
frame.setSize(350,300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(layout);
frame.add("main",mp);
frame.add("register",rp);
frame.add("login",lp);
frame.add("business",bp);
frame.setVisible(true);
addListeners();
}
private void addListeners(){
//在主界面上点击开户,CardLayout翻到RegisterPanel
mp.getRegisterButton().addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
layout.show(frame.getContentPane(),"register");
}
});
//在主界面上点击开户,CardLayout翻到LoginPanel
mp.getLoginButton().addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
layout.show(frame.getContentPane(),"login");
}
});
//在开户界面上点击提交按钮
rp.getOkButton().addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
register();
}
});
//在登录界面上点击提交按钮
lp.getOkButton().addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
login();
}
});
//在交易界面上点击提交按钮
bp.getOkButton().addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
business();
}
});
}
//开户,注意设置account属性
private void register(){
//收集数据
int type=rp.getTypeBox().getSelectedIndex();
String pass1=new String(rp.getPassField1().getPassword());
String pass2=new String(rp.getPassField2().getPassword());
String name=rp.getNameField().getText();
String personId=rp.getPersonIdField().getText();
String email=rp.getEmailField().getText();
//获得Bank对象并开户
Bank bank=Bank.newInstance();
try {
account=bank.register(pass1,pass2,name,personId,email,type);
bp.initComponent(account);
bp.setText(account);
layout.show(frame.getContentPane(),"business");
} catch (RegisterException e) {
//处理异常 在frame上弹出一个消息对话框
JOptionPane.showMessageDialog(frame,e.getMessage());
}
}
//登录,注意设置account属性
private void login(){
String idString=lp.getIdField().getText();
String password=new String(lp.getPassField().getPassword());
Bank bank=Bank.newInstance();
try {
account=bank.login(Long.parseLong(idString),password);
bp.initComponent(account);
bp.setText(account);
layout.show(frame.getContentPane(),"business");
} catch (LoginException e) {
JOptionPane.showMessageDialog(frame,e.getMessage());
}
}
//交易
private void business(){
String choice=(String)bp.getChoiceBox().getSelectedItem();
String moneyString=bp.getInputField().getText();
double money=Double.parseDouble(moneyString);
long id=account.getId();
Bank bank=Bank.newInstance();
try {
if (choice.equals("存款"))
account=bank.deposit(id,money);
else if (choice.equals("取款"))
account=bank.withdraw(id,money);
else if (choice.equals("设置透支额度"))
account=bank.setCeiling(id,money);
else if (choice.equals("申请贷款"))
account=bank.requestLoan(id,money);
else account=bank.payLoan(id,money);
bp.getInputField().setText("");
bp.setText(account);
} catch (BusinessException e) {
JOptionPane.showMessageDialog(frame,e.getMessage());
}
}
public static void main(String[] args){
new BAMClient();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -