⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jiaoyi.java

📁 该压缩文件中共包含16个非常实用的java学习实例
💻 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 + -