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

📄 pos.java

📁 超市购物系统用于给用户提供购物的选择空间
💻 JAVA
字号:
package windows;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Date;
import javax.swing.table.*;
import odbc.*;

public class Pos implements ActionListener{
    private JFrame pos;
    private JLabel tl,gidl,gnl,tcl,dt,total;
    private JTextField gidtf,gntf,tctf;
    private JButton delete,addl,pay,cancel;
    private JPanel p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17;
    private JTextArea ta;
    private int row,rowcount,i,mid;
    private int gid[];
    private float tc=0;
    private SimpleDateFormat sdf;
    private String time;
    private Object[] columnNames = {"商品号", "商品名", "单价", "数量"}; 
    private Object[][] rowData = new Object[1][4]; 
    private DefaultTableModel mm= new DefaultTableModel(columnNames,0);
    private JTable table=new JTable(mm);
    private JScrollPane sp=new JScrollPane(table);
    	
    	public Pos(String str,String mid) {                             //构造函数初始化
    		
    	    pos=new JFrame("XXPOS终端零售系统");
    	    this.mid=Integer.parseInt(mid);
    		//时间格式
    	    sdf=new SimpleDateFormat("",Locale.SIMPLIFIED_CHINESE);
    	    sdf.applyPattern("yyyy年MM月dd日_HH时mm分ss秒");
    	    time=sdf.format(new Date());
    	    //Label
    	    tl=new JLabel("尊敬的" + str + ",您好!",JLabel.CENTER);
    	    tl.setFont(new Font("隶书",28,28));
    	    gidl=new JLabel("所购商品号",JLabel.CENTER);
    	    gidl.setFont(new Font("黑体",20,24));
    	    gnl=new JLabel("商品数量",JLabel.CENTER);
    	    gnl.setFont(new Font("黑体",20,24));
    	    tcl=new JLabel("总价",JLabel.CENTER);
            tcl.setFont(new Font("黑体",20,20));
   	        dt=new JLabel(time,JLabel.CENTER);
    	    dt.setFont(new Font("隶书",20,24)); 
    	    total=new JLabel("该收银台的销售额是: "+Load.getMoney()+"元",JLabel.CENTER);
    	    total.setFont(new Font("隶书",20,24));
    	    //TextField
    	    gidtf=new JTextField(10);     
    	    gntf=new JTextField(10);
    	    gntf.setText("1");
    	    tctf=new JTextField("0.0元");
    	    gidtf.setFont(new Font("黑体",20,24));
    	    gntf.setFont(new Font("黑体",20,24));
    	    tctf.setFont(new Font("黑体",20,24));
    		//Button
    	    delete=new JButton("删除");
    	    addl=new JButton("添加");
    	    pay=new JButton("购买");
    	    cancel=new JButton("取消");
    	    delete.setFont(new Font("黑体",18,24));
    	    addl.setFont(new Font("黑体",18,24));
    	    pay.setFont(new Font("黑体",18,24));
    	    cancel.setFont(new Font("黑体",18,24));
    	    //Panel
    	    p1=new JPanel();
    	    p2=new JPanel();
    	    p3=new JPanel();
    	    p4=new JPanel();
    	    p5=new JPanel();
    	    p6=new JPanel();
    	    p7=new JPanel();
    	    p8=new JPanel();
    	    p9=new JPanel();
    	    p10=new JPanel();
    	    p11=new JPanel();
    	    p12=new JPanel();
    	    p13=new JPanel();
    	    p14=new JPanel();
    	    p15=new JPanel();
    	    p16=new JPanel();
    	    p17=new JPanel();
    	    //布局
    	    p1.setLayout(new BorderLayout());
    	    p1.add(tl);    	     
    	    p2.setLayout(new GridLayout(1,2));
    	    p2.add(gidl);
    	    p2.add(gidtf);
    	    p3.setLayout(new GridLayout(1,2));
    	    p3.add(gnl);
    	    p3.add(gntf);
    	    p4.add(delete);
    	    p5.add(addl);    	     
    	    p6.setLayout(new GridLayout(1,1));
    	    p6.add(sp);
    	    p7.setLayout(new GridLayout(1,2));
    	    p7.add(tcl);
    	    p7.add(tctf);
    	    p8.add(pay);
    	    p16.add(cancel);
    	    p9.setLayout(new GridLayout(1,2));
    	    p9.add(dt);
    	    p9.add(total);
    	    p10.setLayout(new GridLayout(1,2));
    	    p10.add(p2);
    	    p10.add(p3);
    	    p11.setLayout(new GridLayout(1,2));
    	    p11.add(p4);
    	    p11.add(p5);
    	    p17.setLayout(new GridLayout(1,2));
    	    p17.add(p8);
    	    p17.add(p16);
    	    p12.setLayout(new GridLayout(1,2));
    	    p12.add(p7);
    	    p12.add(p17);
    	    p13.setLayout(new GridLayout(3,1));
    	    p13.add(p1);
    	    p13.add(p10);
    	    p13.add(p11);
    	    p14.setLayout(new BorderLayout());
    	    p14.add("Center",p12);
    	    p14.add("South",p9);
    	    p15.setLayout(new BorderLayout());
    	    p15.add("Center",p6);
    	    p15.add("South",p14);   	    
    	    pos.add("North",p13);
    	    pos.add("Center",p15);
    	    pos.setLayout(new GridLayout(2,1));
    	    pos.setLocation(100,100);
    	    pos.setSize(500,400);
    	    pos.setVisible(true);
    	    pos.setDefaultCloseOperation (JFrame.DISPOSE_ON_CLOSE);
    		//按钮事件监听
    	    delete.addActionListener(this);
    	    addl.addActionListener(this);
    	    pay.addActionListener(this);
    	    cancel.addActionListener(this);
    	}              //Pos()
    	
    	public void actionPerformed(ActionEvent e){
    	    String t=gntf.getText(); 
    	     
    		if(e.getSource()==delete)               //取消对某货品的购买
    		{if(gidtf.getText().equals("")||mm.getRowCount()==0||row==0) 
       	       JOptionPane.showMessageDialog(null,"购物篮为空或没有输入商品号","出错",JOptionPane.ERROR_MESSAGE);
             else
               {int dgid,nowrow,deln;
                float delp;
	            String gid;
	            nowrow=row;
	            row--;
                dgid=Integer.parseInt(gidtf.getText());     
                for(;row>=0;)
                  {gid=(String)mm.getValueAt(row, 0);
                   if(Integer.parseInt(gid)==dgid) 
                     {deln=Integer.parseInt((String)mm.getValueAt(row,3));
                      delp=Float.parseFloat((String)mm.getValueAt(row,2));
                      tc=tc-deln*delp;
                      t=String.valueOf(tc);
                      mm.removeRow(row);                       //
                      row=-2;                                  //
                     }    //if                                
                   else  row--;                                  
                  }   //for
                if(row==-2) {row=nowrow-1;tctf.setText(t+"元");}
                if(row==-1) {row=nowrow;}
                gidtf.setText("");                             //    			
    		   }   //else
    		}
    		
    		if(e.getSource()==addl)                  //把货品添加到购物篮
    		  {if(gidtf.getText().equals("")) 
       	         JOptionPane.showMessageDialog(null,"请输入商品号","出错",JOptionPane.ERROR_MESSAGE);
   	           else{try{String sql1="select Gid,Gname,Gprice from goods where Gid="+Integer.parseInt(gidtf.getText());
		                Statement stmt = Conn.getConnection().createStatement();
  		                ResultSet rs=stmt.executeQuery(sql1);
  		                rs.next();  		   
  			            rowData[rowcount][0]= rs.getString("Gid");
  			            rowData[rowcount][1]= rs.getString("Gname");
  			            rowData[rowcount][2]= rs.getString("Gprice");
  			            if(t.equals(""))  rowData[rowcount][3]=1;
  			            else  rowData[rowcount][3]= t;
     		            row++;
  			            mm.addRow(rowData[0]);  			          
  		                gidtf.setText("");
  		                gntf.setText("1");     		 
  	                    tc=tc+Float.parseFloat(t)*Float.parseFloat((String)rowData[rowcount][2]);  	      
                        t=String.valueOf(tc);
	                    tctf.setText(t+"元");
  		                stmt.executeUpdate(sql1);
  		                rs.close();
  	                    stmt.close();
  		            }catch(SQLException e1){
  		                e1.getStackTrace();
  		             }  //try---catch
                 }    //else 
    		  }    			
    	
    		if(e.getSource()==pay)                 //购买购物篮中的所有货品
    		  {if(mm.getRowCount()==0||row==0||tctf.getText().equals("")) 
       	          JOptionPane.showMessageDialog(null,"购物篮为空","出错",JOptionPane.ERROR_MESSAGE);
               else {if(mid!=0)
            	      {double mark;
                       mark=tc*0.01;                      
  		               try{String sql5="update members set Mmark=Mmark+"+mark+" Mmoney=Money+"+tc+" where Mid="+mid;  		   
  		                 Statement stmt =Conn.getConnection().createStatement();
  		                 ResultSet rs=stmt.executeQuery(sql5);  		   
  		                 stmt.executeUpdate(sql5);
  		                 rs.close();
  	                     stmt.close();  	       
  		               }catch(SQLException e1){
  		                 e1.getStackTrace();
  		               }  //try---catch
            	      }  
  		             int i=row-1;
  		             for(;i>=0;)
  		                {int gid=Integer.parseInt(String.valueOf(mm.getValueAt(i, 0)));
  		                 int gn=Integer.parseInt(String.valueOf(mm.getValueAt(i, 3)));
  	  		             try{String sql6="update goods set Gstore=Gstore-"+gn+" Gsell=Gsell+"+gn+" where Gid="+gid;  		   
  		                     Statement stmt =Conn.getConnection().createStatement();
  		                     ResultSet rs=stmt.executeQuery(sql6);  		   
  		                     stmt.executeUpdate(sql6);
  		                     rs.close();
  	                         stmt.close();  	       
  		                 }catch(SQLException e1){
  		                     e1.getStackTrace();
  		                  }  //try---catch
 		                 i--;
  		               } //for
                    }  //else 
    		  for(;row>0;row--)  mm.removeRow(row-1);
    		  Load.setMoney(tc);
    		  tctf.setText("0.0元");
    		  total.setText("该收银台的销售额是: "+Load.getMoney()+"元");
	         }    			 
    		
    		if(e.getSource()==cancel)              //取消对购物篮中所有货品的购买
    		  {if(mm.getRowCount()==0||row==0) 
          	     JOptionPane.showMessageDialog(null,"购物篮为空","出错",JOptionPane.ERROR_MESSAGE);
    		   else {for(;row>0;row--)  mm.removeRow(row-1);
  		             tctf.setText("0.0元"); 
    		   }  //else
    		  }
    	}
    
}

⌨️ 快捷键说明

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