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

📄 saleframe.java

📁 java编写小型超市管理系统+数据库.用于小型超市简单的货品进存销
💻 JAVA
字号:
package com.wish;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Date;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
///销售界面
public class Saleframe extends JFrame implements ActionListener{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	//菜单
	JMenuBar mnbar=new JMenuBar();
	JMenu sys=new JMenu("系统");
	JMenuItem sysExit=new JMenuItem("退出系统");
	JMenuItem sysChange=new JMenuItem("切换用户");
	ImageIcon ico= new ImageIcon("sale.gif");
	DefaultTableModel dtm=new DefaultTableModel();
	JPanel right=new JPanel();
	JPanel top=new JPanel();
	JPanel bottom=new JPanel();
	JTable table=null;
	JScrollPane itempan=null;
	//右框
	JLabel userid=new JLabel("ID:");
	JTextField User_id=new JTextField("1000");
	JLabel username=new JLabel("用户名:");
	JLabel User_name=new JLabel("临时用户");
	JLabel userpay=new JLabel("折扣率:");
	JLabel User_pay =new JLabel("1.0");
	JLabel alt=new JLabel("销售");
	JLabel id=new JLabel("编号:");
	JTextField item_id=new JTextField();
	JLabel item=new JLabel("物品");
	JLabel item_name=new JLabel();
	JLabel R1=new JLabel("数量:");
	JTextField num=new JTextField("1");
	JLabel dw=new JLabel("单位:");
	JLabel item_dw=new JLabel();
	JLabel dj=new JLabel("单价:");
	JLabel item_dj=new JLabel();

	JButton btnAdd=new JButton("添加");
	JButton btnDel=new JButton("删除");
	JButton btnOver=new JButton(ico);
	JLabel in=new JLabel("实收:");
	JTextField In=new JTextField("0");
	
	//底框
	JLabel SUM=new JLabel("总价:");
	JLabel out=new JLabel("应找:");
	JLabel Out=new JLabel();
	JLabel sum=new JLabel();
	//顶部框
	String adminname=null;
	JLabel toplay=new JLabel("YY超市小系统");
	JLabel Time=new JLabel();
	float o=0f;
	java.util.Timer time = new java.util.Timer();
	public Saleframe(String title,String admin_name){
		super(title);
		inTable();
		adminname=admin_name;
		JLabel toplay2=new JLabel("---销售员:"+admin_name);
		itempan=new JScrollPane(table);
		top.add(toplay);
		top.add(toplay2);
		top.add(Time);
		toplay.setFont(new Font("黑体",1,24));
		//菜单布局
		mnbar.add(sys);
		sys.add(sysChange);
		sys.addSeparator();
		sys.add(sysExit);

		//底框
		bottom.setLayout(new FlowLayout());

		bottom.add(SUM);
		SUM.setFont(new Font("隶书",0,28));
		bottom.add(sum);
		bottom.add(out);
		bottom.add(Out);		
		//右框
		right.setLayout(new GridLayout(14,2));
		right.add(userid);
		right.add(User_id);
		right.add(username);
		right.add(User_name);
		right.add(userpay);
		right.add(User_pay);
		right.add(id);
		right.add(item_id);
		right.add(item);
		right.add(item_name);
		right.add(R1);
		right.add(num);
		right.add(dw);
		right.add(item_dw);
		right.add(dj);
		right.add(item_dj);
		right.add(btnAdd);
		right.add(btnDel);
		right.add(in);
		right.add(In);
		right.add(btnOver);
		right.add(new JLabel());
		right.add(alt);
		
		sysChange.addActionListener(this);
		sysExit.addActionListener(this);
		btnDel.addActionListener(this);
		btnAdd.addActionListener(this);
		btnOver.addActionListener(this);
		setLayout(new BorderLayout());
		this.setJMenuBar(mnbar);
		this.getContentPane().add(right,BorderLayout.EAST);
		this.getContentPane().add(top,BorderLayout.NORTH);
		this.getContentPane().add(bottom,BorderLayout.SOUTH);
		this.getContentPane().add(itempan,BorderLayout.CENTER);
		this.setSize(600,450);
		setframe.set(this);
		User_id.requestFocus();//加载时即获取焦点

		time.schedule(new TimerTask(){
			@Override
			public void run() {
				Date date = new Date();
				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
				Time.setText(sdf.format(date));
			}},1,1000);
		item_id.addKeyListener(new KeyAdapter(){
			public void keyPressed(KeyEvent e)
			{
				if(e.getKeyCode()==10)
				{
					String n=item_id.getText();
					Vector v=new ItemManager().get1(n);

					if (v.isEmpty()==false)
						{
						Item item=(Item) v.get(0);
						item_name.setText(item.getItem_name());
						item_dw.setText(item.getItem_dw());
						item_dj.setText(item.getItem_dj());
						num.requestFocus();
						}
					else if(v.isEmpty()==true)
						alt.setText("无此物品");
				}
			}
		});
		User_id.addKeyListener(new KeyAdapter(){
			public void keyPressed(KeyEvent e)
			{
				if(e.getKeyCode()==10)
				{
					String n=User_id.getText();
					Vector v=new VipManager().get1(n);

					if(v.isEmpty()==false)
					{	User user=(User)v.get(0);
						User_name.setText(user.getUser_name());
						User_pay.setText(user.getUser_pay());
						item_id.requestFocus();
					}
					else if(v.isEmpty()==true)
						alt.setText("无此用户!");
				}
			}
		});
		In.addKeyListener(new KeyAdapter(){
			public void keyPressed(KeyEvent e)
			{
				if(e.getKeyCode()==10)
					btnOver.requestFocus();
			}
		});
		num.addKeyListener(new KeyAdapter(){
			public void keyPressed(KeyEvent e)
			{
				if(e.getKeyCode()==10)
				{
					btnAdd.requestFocus();
				}
			}
		});
		btnAdd.addKeyListener(new KeyAdapter(){
			public void keyPressed(KeyEvent e)
			{
				if(e.getKeyCode()==10)
				{add();}
			}
		});
		btnOver.addKeyListener(new KeyAdapter(){
			public void keyPressed(KeyEvent e)
			{
				if(e.getKeyCode()==10)
				{Over();}
			}
		});
	}		
	public void actionPerformed(ActionEvent e) {
		if(e.getSource()==btnAdd)//添加按钮事件
			add();
		else if(e.getSource()==btnDel)
		{
			int row=table.getSelectedRow();
			if(row!=-1)
				dtm.removeRow(row);
		}
		else if(e.getSource()==btnOver)
		{	Over();
		}
		else if(e.getSource()==sysExit)
		{
			this.dispose();
			new Login("登陆");
		}
		else if(e.getSource()==sysChange)
		{
			this.dispose();
			new Login("登陆");
		}
	}
	//计算消费和
	private void add()
	{
		Object data[]=new Object[5];
		data[0]=item_id.getText();
		data[1]=item_name.getText();
		data[2]=num.getText();
		data[3]=item_dw.getText();
		data[4]=item_dj.getText();
		dtm.addRow(data);
		
		item_name.setText("");
		num.setText("1");
		item_dj.setText("");
		item_dw.setText("");
		float s=0f;
		int r=dtm.getRowCount();
		//System.out.print(r);
		for(int i=0;i<r;i++)
		{
			int c=Integer.parseInt(dtm.getValueAt(i,2).toString());
			float d=Float.parseFloat(dtm.getValueAt(i,4).toString());
			float p=Float.parseFloat(User_pay.getText());
			s=s+c*d*p;
		}
		this.sum.setText(String.valueOf(s));
	item_id.requestFocus();
	}
	private void inTable()
	{
		table=new JTable(dtm);
		dtm.addColumn("编号");
		dtm.addColumn("名称");
		dtm.addColumn("数量");
		dtm.addColumn("单位");
		dtm.addColumn("单价");
	}
	
	//更新数据库中总消费值
	private void put(){
		Connection cn=ConnectionDB.getCon();
		Statement st=null;
		ResultSet rs=null;
		String userid=User_id.getText();
		String userbuy=null;
		try {
			st=cn.createStatement();
			rs=st.executeQuery("select user_buy from userlist where user_id='"+userid+"'");
			while(rs.next())
			{
				userbuy=rs.getString("user_buy");
			}
			userbuy=String.valueOf(Float.parseFloat(userbuy)+Float.parseFloat(sum.getText()));
			st.executeUpdate("update userlist set user_buy='"+userbuy+"' where user_id='"+userid+"'");
			st.executeUpdate("insert into saled_log values('"+adminname+"','"+User_id.getText()+"','"+Time.getText()+"','"+sum.getText()+"')");
		} catch (SQLException e) {
			e.printStackTrace();
		}
		ConnectionDB.close(cn);
		ConnectionDB.close(rs);
		ConnectionDB.close(st);
	}
	//结帐函数
	private void Over(){
		
		float s=Float.parseFloat(sum.getText());
		o=(Float.parseFloat(In.getText())-s);
		if(o<0)
			JOptionPane.showMessageDialog(this, "不足以支付!");
		else
		{Out.setText(String.valueOf(o));
//		打印购买清单
		System.out.println("销售员:"+adminname);
		System.out.print("用户名:"+User_name.getText()+"  ");
		System.out.println(Time.getText());
		System.out.println("名称"+"  "+"数量"+" "+"单位"+"  "+"单价"+"  ");
		int r=dtm.getRowCount();
		for(int i=0;i<r;i++)
		{
			String i2=(String) dtm.getValueAt(i,1);
			String i3=(String) dtm.getValueAt(i,2);
			String i4=(String) dtm.getValueAt(i,3);
			String i5=(String) dtm.getValueAt(i,4);
			System.out.println(i2+" "+i3+"  "+i4+"  "+i5);
		}
		System.out.print("实收:$"+In.getText()+"  "+"应找:$"+o);
		//将消费数放入数据库
		put();//
		
		//结帐后全部清空
		for(int i=0;i<r;i++)
		dtm.removeRow(0);

		User_id.setText("1000");
		User_name.setText("临时用户");
		item_id.setText("");
		item_name.setText("");
		num.setText("1");
		item_dw.setText("");		
		item_dj.setText("");
		In.setText("");
		sum.setText("");
		JOptionPane.showMessageDialog(this,"成功打印并已存入消费记录");
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -