📄 transfer.java
字号:
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//转账功能
public class transfer extends JFrame implements ActionListener{
private Statement st=null;
private Connection con=null;
private ResultSet rs=null;
private String command=null;
private boolean flag=true;
private String getFromCardNum=null;
private String getpswd=null;
private String getToCardNum=null;
private String getMoney=null;
private String transFromMoney;
private String transToMoney;
private JLabel transFromCardNumLabel=new JLabel("转出卡号:");
private JTextField transFromCardNum=new JTextField(18);
private JLabel transFromCardpswdLabel=new JLabel("转出口令:");
private JPasswordField transFromCardpswd=new JPasswordField(8);
private JLabel transToCardNumLabel=new JLabel("转入卡号:");
private JTextField transToCardNum=new JTextField(18);
private JLabel inputMoneyLabel=new JLabel("请输入要取款金额(50~2000)");
private JTextField inputMoney=new JTextField(6);
private JButton transferButton=new JButton("转账");
private JButton close=new JButton("关闭");
private JLabel resultLabel=new JLabel("操作结果");
private JTextArea resultArea=new JTextArea(8,40);
//无参构造方法
public transfer(){
setup(); //初始化面板
}
//有参构造方法
public transfer(String card,String pswd){
setup(); //初始化面板
transFromCardNum.setText(card);
transFromCardpswd.setText(pswd);
}
////初始化面板方法
public void setup(){
setTitle("转 账");
setSize(400,450);
setLocation(300,400);
setResizable(false);
resultArea.setEditable(false);
resultArea.setLineWrap(true);
Container c=getContentPane();
c.setLayout(null);
c.add(transFromCardNumLabel);
transFromCardNumLabel.setBounds(20,20,75,30);
c.add(transFromCardNum);
transFromCardNum.setBounds(80,20,250,30);
c.add(transFromCardpswdLabel);
transFromCardpswdLabel.setBounds(20,60,75,30);
c.add(transFromCardpswd);
transFromCardpswd.setBounds(80,60,250,30);
c.add(transToCardNumLabel);
transToCardNumLabel.setBounds(20,100,75,30);
c.add(transToCardNum);
transToCardNum.setBounds(80,100,250,30);
c.add(inputMoneyLabel);
inputMoneyLabel.setBounds(100,140,250,30);
c.add(inputMoney);
inputMoney.setBounds(80,170,250,30);
c.add(transferButton);
transferButton.setBounds(120,220,60,40);
c.add(close);
close.setBounds(200,220,60,40);
c.add(resultLabel);
resultLabel.setBounds(160,250,60,50);
JScrollPane scrollPane=new JScrollPane(resultArea);
c.add(scrollPane);
scrollPane.setBounds(20,290,320,80);
transferButton.addActionListener(this);
close.addActionListener(this);
show();
}
//事件监听
public void actionPerformed(ActionEvent ae){
if(ae.getSource()==close){ //关闭按钮
confirmDialog endOD=new confirmDialog(this,"结束操作","真的要结束转账吗?");
if(endOD.isOkay){
hide();
}
}
else if(ae.getSource()==transferButton){ //转账按钮
flag=true;
//获取输入内容
getFromCardNum=transFromCardNum.getText().trim();
getpswd=transFromCardpswd.getText().trim();
getToCardNum=transToCardNum.getText().trim();
getMoney=inputMoney.getText().trim();
//判断输入转出卡号和密码是否为空
if(getFromCardNum.equals("")==true&&getpswd.equals("")==true){
JOptionPane.showMessageDialog(null,"请输入卡号和密码!");
}
//判断输入转入卡号和密码是否为空
else if(getToCardNum.equals("")==true){
JOptionPane.showMessageDialog(null,"请输入要转入的卡号!");
}
//判断输入转账金额是否为空
else if(getMoney.equals("")==true){
JOptionPane.showMessageDialog(null,"请输入要转出的金额!");
}
else{ //查询卡号是否存在
command="select * from cardTable where userCardNum='"+getFromCardNum+"'";
try{
st=connectDB.conDB(); //连接数据库
con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=BSMS","sa","5201314");
rs=st.executeQuery(command);
if(rs.next()){
String pswdValue=rs.getString("code").trim();
String moneyValue=rs.getString("balance").trim();
int moneyInCardValue=Integer.parseInt(moneyValue);
int getMoneyValue=Integer.parseInt(getMoney);
if(moneyInCardValue<getMoneyValue){
JOptionPane.showMessageDialog(null,"卡上余额不足!");//看余额足否
flag=false;
}
if(pswdValue.equals(getpswd)==true){ //判断密码和卡号是否匹配
if(flag){ //判断转入卡号是否存在和转账
int sum=moneyInCardValue-getMoneyValue;
command="select * from cardTable where userCardNum='"+getToCardNum+"'";
try{
rs=st.executeQuery(command);
if(rs.next()){
transToMoney=rs.getString("balance").trim();
}
else{
JOptionPane.showMessageDialog(null,"要转入的卡号不存在");
flag=false;
}
}catch(SQLException ex){
while(ex!=null){
JOptionPane.showMessageDialog(null,ex);
ex.getNextException();
return;
}
}
transFromMoney=Integer.toString(sum);
command="update cardTable set balance='"+transFromMoney+"' where userCardNum='"+getFromCardNum+"'";//更新数据库
try{
st.executeUpdate(command); //转出卡号数据更新
//输出操作结果
resultArea.append("转出卡号:"+getFromCardNum+"\n");
resultArea.append("转出:"+getMoney+"\n");
resultArea.append("当前余额:"+transFromMoney+"\n");
}catch(SQLException ex){
while(ex!=null){
JOptionPane.showMessageDialog(null,ex);
ex.getNextException();
return;
}
}
int transInCardMoneyValue=Integer.parseInt(transToMoney);
int transInCardSumMoneyValue=transInCardMoneyValue+getMoneyValue;
transToMoney=Integer.toString(transInCardSumMoneyValue);
command="update cardTable set balance='"+transToMoney+"' where userCardNum='"+getToCardNum+"'";//更新数据库
try{
st.executeUpdate(command); //转入卡号数据更新
//输出操作结果
resultArea.append("转入卡号:"+getToCardNum+"\n");
resultArea.append("转入:"+getMoney+"系统提示:操作成功完成!\n");
resultArea.append("当前余额:"+transToMoney+"\n");
JOptionPane.showMessageDialog(null,"交易成功!");
}catch(SQLException ex){
while(ex!=null){
JOptionPane.showMessageDialog(null,ex);
ex.getNextException();
return;
}
}
}
}
else{
//卡号密码不一致
JOptionPane.showMessageDialog(null,"卡号和密码不一致!");
flag=false;
confirmDialog reEnter=new confirmDialog(this,"重新输入","重新输入卡号和密码?");
if(reEnter.isOkay){
flag=true;
}
else{
transfer.this.hide();
}
}
}
else{
JOptionPane.showMessageDialog(null,"卡号不存在!");
flag=false;
confirmDialog reEnter=new confirmDialog(this,"重新输入","重新输入卡号和密码?");
if(reEnter.isOkay){
flag=true;
}
else{
transfer.this.hide();
}
}
}catch(SQLException ex){
while(ex!=null){
JOptionPane.showMessageDialog(null,ex);
resultArea.append(ex+"\n");
ex.getNextException();
return;
}
}
}
closeDB.closeDB(st,con);
}
}
public static void main(String args[]){
transfer transferMoney=new transfer();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -