我也不知道我在写什么(战术后仰)
import javax.swing.*;
import javax.swing.event.ListDataEvent;
import javax.swing.event.ListDataListener;
import java.awt.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Timer;
import java.util.TimerTask;
public class StartSet {
public static void main(String[] args) {
long interval = 1000;//在这里改每过多少时间刷新一天 单位ms
Bank bank=new Bank("ChinaBank",0.065);
testAcount testAcount=new testAcount(bank);
bank.createUser("hiroomi","123");
bank.userTools("10120190001").topUp( 1000);
bank.userTools("10120190001").getInfo("123");
bank.userTools("10120190001").withdraw(100,"123");
bank.userTools("10120190001").changeName("123","eric");
bank.userTools("10120190001").changePassword("123","321");
bank.userTools("10120190001").getInfo("321");
Timer timer = new Timer();
JFrame jFrame = new JFrame();
jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
ListModel listModel=new DefaultListModel();
JTextArea jTextArea=new JTextArea();
jTextArea.setLineWrap(true);
jFrame.add(jTextArea);
jFrame.setSize(750,1000);
jFrame.setLayout(new GridLayout(1,1,1,1));
jFrame.setVisible(true);
timer.schedule(new TimerTask() {
@Override
public void run() {
ArrayList<String> list= bank.refresh();
String out="";
for (String s:list) {
out=out+s+"\n";
}
jTextArea.setText(out);
}
},3000,interval);
}
}
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
public class Bank {
String bankName;
Double rate;
HashMap<String,User> users;
static Integer bankId=100;
private Integer key;
protected Bank(String bankName, Double rate) {
this.bankName = bankName;
this.rate = rate;
bankId++;
users=new HashMap<String,User>();
Long aLong=new Date().getTime();
key= aLong.hashCode();
}
String createUser(String name,String password) {
User user = new User(name, password,bankId.toString(),key.toString());
user.getInfo(password);
users.put(user.getCardId(password),user);
return user.getCardId(password);
}
void getPassword(String cardId,String name){
if (name.equals(users.get(cardId).getName()))
users.get(cardId).getPassword(key.toString());
else System.out.println("Wrong name!");
}
User userTools(String cardId){
return users.get(cardId);
}
ArrayList<String> refresh(){
Long aLong=new Date().getTime();
Integer temp=aLong.hashCode();
Double money;
ArrayList list=new ArrayList<String>();
for (User u:users.values()) {
money=u.getBalance(key.toString(),temp.toString());
money=money*rate*0.01;
u.topUp(money);
list.add(u.toString());
}
key=temp;
return list;
}
Double getBalance(String cardId,String password){
return Double.valueOf(users.get(cardId).getUserBalance(password));
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class testAcount {
public testAcount(Bank bank) {
JFrame jf=new JFrame();
JLabel out=new JLabel("总计");
JLabel name= new JLabel("姓名");
JTextField jn=new JTextField();
JLabel p= new JLabel("密码");
JTextField jp=new JTextField();
JButton b=new JButton("开户");
JButton d=new JButton("存款");
jf.setLayout(new GridLayout(4,2,10,10));
jf.setSize(400,200);
jf.add(name);
jf.add(jn);
jf.add(p);
jf.add(jp);
jf.add(b);
jf.add(b);
jf.setDefaultCloseOperation(2);
Toolkit toolkit=Toolkit.getDefaultToolkit();
Dimension screenSize=toolkit.getScreenSize();
jf.setLocation(screenSize.width/2-200,screenSize.height/2-100);
jf.setVisible(true);
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String cardId=bank.createUser(jn.getText(),jp.getText());
jf.setVisible(false);
JFrame nf=new JFrame();
nf.setLayout(new GridLayout(4,2,10,10));
nf.setSize(400,200);
JButton d=new JButton("存款");
JTextArea jt=new JTextArea();
JButton f=new JButton("return");
nf.add(d);
nf.add(out);
nf.add(jt);
nf.add(f);
nf.setLocation(screenSize.width/2-200,screenSize.height/2-100);
nf.setVisible(true);
d.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
bank.userTools(cardId).topUp(Double.parseDouble(jt.getText()));
jt.setText(bank.getBalance(cardId,jp.getText()).toString());
}});
f.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
nf.setVisible(false);
jf.setVisible(true);
}
});
}});
}
}
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.Date;
import java.util.Timer;
public class User {
static Integer number=20190001;
private String cardId;
private String name;
private Double balance;
private String password;
private String bank_key;
static DecimalFormat df = new DecimalFormat();
public User(String name,String password,String bankId,String bank_key) {
df.setMinimumFractionDigits(2);
this.name = name;
cardId =bankId+number.toString();
number++;
balance=0.0;
this.password=password;
this.bank_key=bank_key;
}
void withdraw(double money,String password){
if (password.equals(this.password)) {
balance=balance-money;
System.out.println(getInfo());
}
else System.out.println("Wrong password!");
}
void topUp(double money){
balance=balance+money;
System.out.println(getInfo());
}
private String getInfo() {
return "{\"User\":{"
+ "\"cardId\":\""
+ cardId + '\"'
+ ",\"name\":\""
+ name + '\"'
+ ",\"balance\":"
+ df.format(balance)
+ "}}";
}
void getInfo(String password) {
if (password.equals(this.password))
System.out.println(
"{\"User\":{"
+ "\"cardId\":\""
+ cardId + '\"'
+ ",\"name\":\""
+ name + '\"'
+ ",\"balance\":"
+ df.format(balance)
+ "}}");
else System.out.println("Wrong password!");
}
String getCardId(String password){
if (password.equals(this.password)){
return cardId;
}else {
return "Wrong password!";
}
}
void changePassword(String password,String newPassword){
if (password.equals(this.password)){
this.password=newPassword;
}else {
System.out.println("Wrong password!");
}
}
void changeName(String password,String newName){
if (password.equals(this.password)){
this.name=newName;
}else {
System.out.println("Wrong password!");
}
}
double getBalance(String key,String newKey){
if (bank_key.equals(key)){
bank_key=newKey;
return balance;
}else return 0;
}
String getUserBalance(String password){
if (this.password.equals(password)){
return balance.toString();
}else {
return "Wrong password!";
}
}
String getPassword(String bank_key){
if (bank_key.equals(this.bank_key)) return password;
else return "Wrong password!";
}
String getName(){
return name;
}
@Override
public String toString() {
return "{\"User\":{"
+ "\"cardId\":\""
+ cardId + '\"'
+ ",\"name\":\""
+ name + '\"'
+ ",\"balance\":"
+ df.format(balance)
+ ",\"password\":\""
+ password + '\"'
+ ",\"bank_key\":\""
+ bank_key + '\"'
+ "}}";
}
}