@[LZJ]ATM-GUI
以下是相应的代码:
/** * 账号实体类 * @author 一期一会 * */ public class CodeBean { /** * 账号 */ private String code; /** * 密码 */ private String pwd; /** * 账号余额 */ private int money; public CodeBean() { super(); } public CodeBean(String code, String pwd, int money) { super(); this.code = code; this.pwd = pwd; this.money = money; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public int getMoney() { return money; } public void setMoney(int money) { this.money = money; } @Override public String toString() { return "CodeBean [code=" + code + ", pwd=" + pwd + ", money=" + money + "]"; }什么是java接口:
Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现。
不同于接口的概念,接口是一个类所具有的方法的特征集合,是一种逻辑上的抽象。
主要功能有:1、登录 2、查询 3、存款 4、取款 5、改密 6、转账
以下是相应的代码:
/** * 账号业务接口 * @author 一期一会 * */ public interface IcondeService { /** * 登录 * @param code 账号 * @param pwd 密码 * @return 登录是否成功 */ public boolean login(String code,String pwd); /** * 得到登录账号的金额 * @return 账号金额 */ public int getCodeMoney(); /** * 存款 * @param sm 存款金额 */ public void saveMoney(int sm); /** * 取款 * @param gm 取款金额 * @return 取款是否成功,余额不足返回false,取款成功,返回true */ public boolean sellMoney(int gm); /** * 改密码 * @param oldPwd 旧密码 * @param newpwd 新密码 * @param repwd 确认新密码 * @return 出错信息,如果修改成功,返回null */ public String updatePwd(String oldPwd,String newpwd,String repwd); /** * 转账 * @param tranCodde 目标账号 * @param money 转账金额 * @return 出错信息,如果转账成功,返回null */ public String transferMoney(String tranCodde,int money);父接口引用子接口特征 夫接口引用可以访问子接口实现类重写的方法 接口的实现需要重写该接口和该接口的所有父接口的所有特征方法
以下是相应的代码:
/** * 账号数组 */ private static CodeBean[] codeArray = { new CodeBean("1","111",5000), new CodeBean("2","222",8000), new CodeBean("3","333",4000) }; /** * 登录账号 */ private static CodeBean loginCode; @Override public boolean login(String code, String pwd) { for (int i = 0; i < codeArray.length; i++) { if(codeArray[i].getCode().equals(code) && codeArray[i].getPwd().equals(pwd)) { loginCode = codeArray[i]; return true; } } return false; } @Override public int getCodeMoney() { return loginCode.getMoney(); } @Override public void saveMoney(int sm) { loginCode.setMoney(loginCode.getMoney() + sm); } @Override public boolean sellMoney(int gm) { if(gm > loginCode.getMoney()) { return false; } loginCode.setMoney(loginCode.getMoney() - gm); return true; } @Override public String updatePwd(String oldPwd, String newpwd, String repwd) { String info = ""; if(oldPwd.equals(loginCode.getPwd()) == false){ info += "原密码错误\n"; } if(newpwd.equals(repwd)==false) { info += "两次密码不一致\n"; } if(info.length() != 0) { return info; } loginCode.setPwd(newpwd); return null; } @Override public String transferMoney(String tranCodde, int money) { String info = ""; //得到转账账号 CodeBean transCode = checkCode(tranCodde); if(transCode == null) { info += "转账账号不存在\n"; } if(money > loginCode.getMoney()) { info += "余额不足\n"; } if(info.length() != 0) { return info; } loginCode.setMoney(loginCode.getMoney() - money); transCode.setMoney(transCode.getMoney() + money); return null; } /** * 验证账号是否存在 * @param code 账号 * @return 是否存在 */ private CodeBean checkCode(String code) { for (int i = 0; i < codeArray.length; i++) { if(code.equals(codeArray[i].getCode())) { return codeArray[i]; } } return null; }**里面所用到通过定义数组来表示账号、密码、余额 通过: private static CodeBean loginCode;来进行对各自账号相应的操作(避免了之前学习通过下标找相应的账号)。 通过: checkCode()方法来对需要进行转账的账号进行判断账号是否正确。 通过: String info = “”; 来对改密方法和转账方法进行判断。 _
一、界面共有:1、登录界面 2、菜单界面3、查询界面 4、存款界面 5、取款界面 6、改密界面 7、转账界面。
Listener是监听者,比如你定义了一个按钮,用addActionListener就可以给这个按钮添加一个监听者,一旦有事件发生(比如鼠标点击),监听者都可以得到这个事件,并可以把事件信息(例如事件源)传给事件处理函数
以下是三个自己建立的:JTextField、JLabel、JButton三个类:
public class MyTxt extends JTextField{ public MyTxt(String lable,int x,int y,Container jf) { JLabel accountLabel = new JLabel(lable); accountLabel.setBounds(x , y,150,50); jf.add(accountLabel); this.setBounds(x + 100, y, 150, 50); jf.add(this); } } public class MyJLable extends JLabel{ public MyJLable(String info,int x,int y,Container myJFram) { //设置按钮的文本 this.setText(info); //设置按钮位置和大小 this.setBounds(x,y, 100, 30); //加入字体 this.setFont(new Font("宋体", Font.PLAIN, 25)); //将按钮加入窗体 myJFram.add(this); } } public class MyButton extends JButton{ public MyButton(String name,int x,int y,Container jf) { //设置按钮文本 this.setText(name); //设置按钮位置和大小 this.setBounds(x, y, 140, 50); //加入按钮字体 this.setFont(new Font("宋体", Font.PLAIN, 25)); //按钮加入窗体 jf.add(this); } }