📄 pos.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 + -