📄 store.java
字号:
package client;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.sql.*;
import javax.swing.*;
import javax.swing.event.*;
public class Store extends JPanel implements ListSelectionListener,ActionListener,ItemListener
{
DataOutputStream dos;
DataInputStream dis;
member strMeg;
bank bk=new bank();
JList osList;
Storedb db=new Storedb("商品","user","user");
JTextField jtf=new JTextField(20);
JTextField jtf1=new JTextField(20);
JTextField jtf2=new JTextField("顾客,您好!祝您本次购物愉快!本店客服电话:xxxxxxxxxxx");
JTable jta=new JTable();
Object a[][];
String []os= new String [50];
JButton b1=new JButton("加入购物车");
JButton b2=new JButton("结帐");
JButton b3=new JButton("清除");
JButton b5=new JButton("商品检索");
JRadioButton jrb=new JRadioButton("VIP");
JRadioButton jrb1=new JRadioButton("Ordinary");
JLabel l=new JLabel("You may can have some deals in your bussiness!");
JPanel p=new JPanel();
JPanel p1=new JPanel();
JPanel p2=new JPanel();
JPanel p3=new JPanel();
int Choose;
int iNum;
ClientMessage_member message=new ClientMessage_member();
ClientMessage_Store message_Store=new ClientMessage_Store();
Store(DataOutputStream dos,DataInputStream dis,member strMeg)
{
this.dis=dis;
this.dos=dos;
this.strMeg=strMeg;
os[0]="按摩器";
os[1]=" 爆米花";
os[2]=" 大号储物箱 ";
os[3]=" 大榛子";
os[4]=" 电子计步器";
os[5]=" 动感护眼仪";
os[6]=" 粉红闹钟";
os[7]="风扇";
os[8]=" 果 冻";
os[9]=" 哈啤纯生";
os[10]=" 黑妹清热牙膏";
os[11]=" 花儿镜";
os[12]=" 换鞋凳";
os[13]=" 活力跳舞毯";
os[14]=" 火腿肠";
os[15]=" 今麦郎方便面";
os[16]=" 开心果";
os[17]=" 康师傅方便面";
os[18]=" 木靠背椅";
os[19]=" 木纤维美容巾";
os[20]=" 耐克足球";
os[21]=" 男运动袜";
os[22]=" 牛肉干";
os[23]=" 女仕吊带裙";
os[24]=" 女仕休闲服";
os[25]=" 乒乓球拍";
os[26]=" 巧克力";
os[27]=" 青岛纯生";
os[28]=" 青岛优质";
os[29]=" 雀巢咖啡500g";
os[30]=" 人头马VSOP";
os[31]=" 人头马XO";
os[32]=" 人头马干邑";
os[33]=" 伸缩书挡架";
os[34]=" 时尚睡衣";
os[35]=" 手腕式收音机";
os[36]=" 瘦身束腰";
os[37]=" 斯伯丁篮球";
os[38]=" 藤制储物柜";
os[39]=" 体温计";
os[40]=" 万福裹发巾";
os[41]=" 小金龟CD包";
os[42]=" 火血糖仪";
os[43]=" 摇马";
os[44]=" 衣物清洗袋";
os[45]=" 鹰视太阳镜";
os[46]=" 浴室壁贴";
os[47]=" 远红外护腿";
os[48]=" 中号储物箱";
os[49]=" 助听器";
osList=new JList(os);
Object columnName[]={"商品名称","数量"};
a=new Object[50][2];
jta=new JTable(a,columnName);
setLayout(new BorderLayout());
add(new JScrollPane(osList),BorderLayout.WEST);
p.setLayout(new GridLayout(3,1,25,25));
b1.setToolTipText("您选择的商品将出现在中间表格中");
p.add(b1);
b2.setToolTipText("购买所选商品");
p.add(b2);
b3.setToolTipText("清除购物车中的商品");
p.add(b3);
add(p,BorderLayout.EAST);
p1.setLayout(new FlowLayout());
p1.add(jtf);
b5.setToolTipText("按名称搜索商品");
p1.add(b5);
p1.add(jtf1);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b5.addActionListener(this);
jrb.addItemListener(this);
jrb1.addItemListener(this);
add(p1,BorderLayout.SOUTH);
osList.addListSelectionListener(this);
jrb.setForeground(Color.BLUE);
jrb.setBackground(Color.WHITE);
jrb.setMnemonic('V');
jrb1.setForeground(Color.BLUE);
jrb1.setBackground(Color.WHITE);
jrb1.setMnemonic('O');
ButtonGroup group=new ButtonGroup();
group.add(jrb);
group.add(jrb1);
MovingMessagePanel m=new MovingMessagePanel("Welcome to our store!");
p2.setLayout(new GridLayout(3,1,5,5));
p2.add(new JScrollPane(jta));
p2.add(m);
p2.add(jtf2);
Timer timer=new Timer(100,m);
timer.start();
add(p2,BorderLayout.CENTER);
p3.setLayout(new FlowLayout());
p3.add(jrb);
p3.add(l);
p3.add(jrb1);
add(p3,BorderLayout.NORTH);
setSize(600,500);
setVisible(true);
}
class MovingMessagePanel extends JPanel implements ActionListener
{
private static final long serialVersionUID = -2397593626990759111L;
String message;
int x=55;
int y=70;
public MovingMessagePanel(String message)
{
this.message=message;
}
public void actionPerformed(ActionEvent e)
{
repaint();
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
if(x>getWidth())
x=-55;
x+=5;
g.drawString(message, x, y);
}
}
public void valueChanged(ListSelectionEvent e)
{
if(e.getSource()==osList)
{
try{
db.QueryData(osList.getSelectedValue().toString().trim());
db.next();
int VIPprice=db.getInt("VIP价格");
int price=db.getInt("普通价格");
repaint();
jtf1.setText("VIP价格"+VIPprice+"元"+" 普通价格"+price+"元");
}catch(SQLException ec){
ec.printStackTrace();
}
}
}
public void itemStateChanged(ItemEvent e)
{
if(jrb.isSelected())
{
Choose=1;
}
if(jrb1.isSelected())
{
Choose=2;
}
}
public void actionPerformed(ActionEvent e)
{
byte [] data=new byte[1024];
if(e.getSource()==b1)
{
int flag=0;
String strName=osList.getSelectedValue().toString().trim();
try {
message_Store.UpdateInfo(dos, dis, strName,1);
int num=dis.read(data);
System.out.println(new String(data,0,num));
if(new String(data,0,num).equals("true"))
{
for(int k=0;k<iNum;k++)
{
if(strName.equals(a[k][0].toString()))
{
a[k][1]=Integer.parseInt(a[k][1].toString())+1;
flag=1;
}
}
if(flag==0)
{
a[iNum][0]=strName;
a[iNum][1]=1;
iNum++;
}
}
else
{
JOptionPane.showMessageDialog(null,"您所购买的商品数量不够 !","警告",JOptionPane.WARNING_MESSAGE);
}
} catch (IOException e1) {
e1.printStackTrace();
}
repaint();
}
if(e.getSource()==b3)
{
String strName=osList.getSelectedValue().toString().trim();
try {
message_Store.UpdateInfo(dos, dis, strName,2);
repaint();
int num=dis.read(data);
if(new String(data,0,num).equals("true"))
{
for(int k=0;k<iNum;k++)
{
if(a[k][0].equals(strName))
{
if((a[k][1].equals(1))||(a[k][1].equals("1")))
{
for(int i=k;i<iNum;i++)
{
a[i][0]=a[i+1][0];
a[i][1]=a[i+1][1];
}
iNum--;
}
else
{
a[k][1]=Integer.parseInt(a[k][1].toString())-1;
}
}
}
}
} catch (IOException e1) {
// TODO 自动生成 catch 块
e1.printStackTrace();
}
}
if(e.getSource()==b2)
{
if(Choose!=1&&Choose!=2)
{
JOptionPane.showMessageDialog(null,"Please choose VIP or Ordinary !","警告",JOptionPane.WARNING_MESSAGE);
}
else if(Choose==1)
{
int sum=0;
try
{
for(int q=0;q<iNum;q++)
{
db.QueryData(a[q][0].toString().trim());
db.next();
int VIPprice=db.getInt("VIP价格");
int number=Integer.parseInt(a[q][1].toString());
sum+=VIPprice*number;
}
}catch(SQLException ec){
ec.printStackTrace();
}
jtf2.setText("您本次消费的金额为:"+String.valueOf(sum)+"元");
try {
float fBalance=bk.delete(strMeg, sum);
if(fBalance>=0)
{
dos.writeInt(8);
dis.read(data);
message.UpdateSingleInfo(dos,null,0,fBalance,3);
}
} catch (IOException e1)
{
e1.printStackTrace();
}
while(iNum>=0)
{
a[iNum][0]=" ";
a[iNum][1]=" ";
iNum--;
}
iNum=0;
repaint();
}
if(Choose==2)
{
int sum1=0;
try
{
for(int q=0;q<iNum;q++)
{
db.QueryData(a[q][0].toString().trim());
db.next();
int price=db.getInt("普通价格");
int number=Integer.parseInt(a[q][1].toString());
sum1+=price*number;
}
}catch(SQLException ec){
ec.printStackTrace();
}
jtf2.setText("您本次消费的金额为:"+String.valueOf(sum1)+"元");
try {
message.UpdateInfo(dos, dis,strMeg.getID(),strMeg.getPW(),null,null, 0,0,4);
if(dis.readBoolean())
{
strMeg.setBalance(dis.readFloat());
}
}catch (IOException e1) {
e1.printStackTrace();
}
try {
float fBalance=bk.delete(strMeg, sum1);
if(fBalance>=0)
{
dos.writeInt(8);
dis.read(data);
message.UpdateSingleInfo(dos,null,0,fBalance,3);
}
} catch (IOException e1)
{
e1.printStackTrace();
}
while(iNum>=0)
{
a[iNum][0]=" ";
a[iNum][1]=" ";
iNum--;
}
iNum=0;
}
}
else if(e.getSource()==b5)
{
try{
db.QueryData(jtf.getText().trim());
if(db.next())
{
int VIPprice=db.getInt("VIP价格");
int price=db.getInt("普通价格");
int number=db.getInt("数量");
jtf1.setText("VIP价格"+VIPprice+"元"+" 普通价格"+price+"元"+" 数量"+number);
}
else
{
JOptionPane.showMessageDialog(null,"无此商品!","警告",JOptionPane.WARNING_MESSAGE);
}
}catch(SQLException ec){
ec.printStackTrace();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -