📄 jiaoyi.java
字号:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
class jiaoyi extends Frame implements ActionListener
{
//定义所需要的控件和用来显示的用户名和金额
private String name;
private double money;
private Label msg1=new Label();
private Label msg2=new Label();
private Label help=new Label("请先输入金额,再进行相应的操作!");
private TextField num=new TextField("0.00");
private Button in=new Button("存入");
private Button out=new Button("取出");
private Button quit=new Button("退出");
//定义所需要的数据库操作对象
private Connection con;
private Statement sm;
private ResultSet rs;
private String sql;
jiaoyi(String name)
{
//设置窗体的大小等属性
this.setSize(220,180);
this.setResizable(false);
this.setBackground(new Color(214,211,206));
this.setTitle("交易");
Image i=Toolkit.getDefaultToolkit().getImage("qq.gif");
this.setIconImage(i);//设置窗体的图标
//设置窗口在屏幕的居中显示
int width,height;
width=(Toolkit.getDefaultToolkit().getScreenSize().width-this.getSize().width)/2;
height=(Toolkit.getDefaultToolkit().getScreenSize().height-this.getSize().height)/2;
this.setLocation(width,height);
//添加窗口的关闭监听
this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
JOptionPane.showMessageDialog(null,"谢谢使用本系统!");
System.exit(0);
}
});
//获得传入的用户名
this.name=name;
//开始布局
this.setLayout(new GridLayout(5,1));
//设置2个显示信息的label居中对齐
msg1.setAlignment(1);
msg1.setForeground(Color.red);//设置字的颜色为红色
msg1.setFont(new Font("SansSerif",Font.BOLD,18));//设置字体为黑体,大小为18
msg1.setText("用户: "+name);
this.add(msg1);
msg2.setAlignment(1);
msg2.setForeground(Color.red);
msg2.setFont(new Font("SansSerif",Font.BOLD,18));
this.add(msg2);
help.setAlignment(1);
help.setForeground(Color.blue);
this.add(help);
this.add(num);
//最后用流式布局加入3个按钮
Panel p=new Panel(new FlowLayout());
p.add(in);
p.add(out);
p.add(quit);
this.add(p);
//连接数据库,把该用户的余额显示出来
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:bank");
sm=con.createStatement();
sql="select * from jiaoyi where name='"+name+"'";
rs=sm.executeQuery(sql);
if(rs.next())
{
money=rs.getDouble(2);//结果集中的第二个字段就是"money"
}
}
catch(Exception exce)
{
JOptionPane.showMessageDialog(null,"数据库连接失败!!!");
}
//在msg(label)上显示出来
msg2.setText("余额为:"+String.valueOf(money));
//给3个按钮加监听
in.addActionListener(this);
out.addActionListener(this);
quit.addActionListener(this);
}
//3个button的监听处理全部交个这个函数处理
public void actionPerformed(ActionEvent e)
{
//通过button上的字符串来加以区分
//是点的"存入"按钮,就进行数据库添加操作
if(e.getActionCommand()=="存入")
{
try
{
//获得用户输入的金额
double d=Double.parseDouble(num.getText().trim());
//然后更新数据库中的信息
sql="update jiaoyi set jiaoyi.money=jiaoyi.money+"+String.valueOf(d)+" where name='"+name+"'";
int i=sm.executeUpdate(sql);
if(i==-1)
{
JOptionPane.showMessageDialog(null,"修改数据库中数据失败!");
return;
}
//最后再把该用户现在的余额提取并显示出来
sql="select * from jiaoyi where name='"+name+"'";
rs=sm.executeQuery(sql);
if(rs.next())
{
money=rs.getDouble(2);
}
msg2.setText("余额为:"+String.valueOf(money));
num.setText("0.00");
JOptionPane.showMessageDialog(null,"存款成功,请查看您的余额!");
}
catch(Exception exce)//出现错误则表示用户输入的金额的格式有问题
{
JOptionPane.showMessageDialog(null,"请输入正确的金额!");
num.setText("0.00");
}
}
//是点的"取出"按钮,就进行数据库减款操作
if(e.getActionCommand()=="取出")
{
try
{
//获得用户输入的金额
double d=Double.parseDouble(num.getText().trim());
//首先看看该用户帐上有没有那么多的钱
sql="select * from jiaoyi where name='"+name+"'";
rs=sm.executeQuery(sql);
double temp=0;
if(rs.next())
{
temp=rs.getDouble(2);
}
if(d>temp)//余额不够的话就直接跳出函数的执行
{
JOptionPane.showMessageDialog(null,"您要取的金额超过了您的存款余额\n请核对后重新输入!");
return;
}
//否则就执行数据库更新操作
sql="update jiaoyi set jiaoyi.money=jiaoyi.money-"+String.valueOf(d)+" where name='"+name+"'";
int i=sm.executeUpdate(sql);
if(i==-1)
{
JOptionPane.showMessageDialog(null,"修改数据库中数据失败!");
return;
}
//最后再把该用户现在的余额提取并显示出来
sql="select * from jiaoyi where name='"+name+"'";
rs=sm.executeQuery(sql);
if(rs.next())
{
money=rs.getDouble(2);
}
msg2.setText("余额为:"+String.valueOf(money));
num.setText("0.00");
JOptionPane.showMessageDialog(null,"取款成功,请查看您的余额!");
}
catch(Exception exce)//出现错误则表示用户输入的金额的格式有问题
{
JOptionPane.showMessageDialog(null,"请输入正确的金额!");
num.setText("0.00");
}
}
//是点的"退出"按钮,就退出系统
if(e.getActionCommand()=="退出")
{
JOptionPane.showMessageDialog(null,"谢谢使用本系统!");
System.exit(0);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -