📄 mall.java
字号:
p1.add(buttonPanel4);
/////////////////////////////店铺功能相关/////////////////////////////
JPanel p2 = new JPanel();
p2.setLayout(new GridLayout(3,1));
p2.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY,2),
"店铺功能选项",TitledBorder.CENTER,TitledBorder.TOP));
JPanel buttonPanel5 = new JPanel();
b = new JButton(" 搜索 ");
b.addActionListener(this);
buttonPanel5.add(b);
JPanel buttonPanel6 = new JPanel();
b = new JButton(" 刷新 ");
b.addActionListener(this);
buttonPanel6.add(b);
JPanel buttonPanel7 = new JPanel();
b = new JButton(" 退出 ");
b.addActionListener(this);
buttonPanel7.add(b);
p2.add(buttonPanel5);
p2.add(buttonPanel6);
p2.add(buttonPanel7);
/////////////////////////////店铺列表/////////////////////////////
String[] name = {"商品名称","单价","库存"};
mt = new MyTable(name,0);
dlgtable=new JTable(mt);
dlgtable.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
if(e.getClickCount()>=2)
{
new ViewDialog();
}
}
});
renovate();
dlgtable.setPreferredScrollableViewportSize(new Dimension(300,500));
JScrollPane sp = new JScrollPane(dlgtable);
sp.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.BLACK,2),
"店铺所有商品列表",TitledBorder.CENTER,TitledBorder.TOP));
String[] bname = {"所属店铺","商品名","购入数量","总价","状态"};
btable = new MyTable(bname,0);
basketStatus=new JTable(btable);
basketStatus.setPreferredScrollableViewportSize(new Dimension(300,100));
for(int i=0;i<basket.getIndex();i++)
{
btable.addRow(new Vector());
basketStatus.setValueAt(basket.getShop(i),i,0);
basketStatus.setValueAt(basket.getName(i),i,1);
basketStatus.setValueAt(basket.getQuantity(i),i,2);
basketStatus.setValueAt(basket.getPrice(i),i,3);
basketStatus.setValueAt(basket.getStatus(i),i,4);
}
JScrollPane p3 = new JScrollPane(basketStatus);
p3.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED,Color.black,Color.lightGray),
"购物车状态",TitledBorder.CENTER,TitledBorder.TOP));
JPanel left = new JPanel();
left.setLayout(new GridLayout(2,1));
left.add(p1);
left.add(p2);
JPanel right = new JPanel();
right.setLayout(new BorderLayout());
right.add(sp,BorderLayout.CENTER);
right.add(p3,BorderLayout.SOUTH);
JLabel pic = new JLabel(new ImageIcon(".\\Mpic.jpg"));
contentPane.add(pic,BorderLayout.NORTH);
contentPane.add(left,BorderLayout.WEST);
contentPane.add(right,BorderLayout.CENTER);
d.setBounds(192,10,640,700);
d.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
String cmd=e.getActionCommand();
if (cmd.equals(" 退出 "))
{
try
{
send.println("END");
send.close();
receive.close();
shopSocket.close();
d.dispose();
}catch(Exception ex){}
}
else if (cmd.equals(" 聊天 "))
{
try
{ send.println("CHAT");
send.println(customer.getUserName());
new ChatClient(customer.getUserName(),IP,d);
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null,"连接失败:"+ex,"ERROR!",2);
}
}
else if (cmd.equals(" 留言 "))
{
new MessageDialog();
}
else if(cmd.equals("查看商品"))
{
if(dlgtable.getSelectedRow()==-1)
{
JOptionPane.showMessageDialog(null,"请从右侧的列表中选择一种商品!","错误",2);
}
else
{
new ViewDialog();
}
}
else if (cmd.equals("购买商品"))
{
if(dlgtable.getSelectedRow()==-1)
{
JOptionPane.showMessageDialog(null,"请从右侧的列表中选择一种商品!","错误",2);
}
else
{
new BuyDialog();
}
}
else if (cmd.equals(" 搜索 "))
{
String goodsName = JOptionPane.showInputDialog(null,"请输入您想要搜索的商品名:","输入您想查找的商品名所包含的信息");
if(goodsName == null)
{
goodsName = "";
}
while(mt.getRowCount()!=0)
{
mt.removeRow(0);
}
if(goodsName.equals(""))
{
renovate();
}
else
{
out.println("SEARCH");
out.println(shopName);
out.println(goodsName);
try
{
String info = in.readLine();
int x=0;
while(!info.equals("OVER"))
{
mt.addRow(new Vector());
for(int i=0;i<3;i++)
{
dlgtable.setValueAt(info,x,i);
info = in.readLine();
}
x++;
}
}catch(IOException ex){}
}
}
else if (cmd.equals(" 刷新 "))
{
renovate();
}
}
public void renovate()
{
while(mt.getRowCount()!=0)
{
mt.removeRow(0);
}
out.println("CREATSHOP");
out.println(shopName);
try
{
String info = in.readLine();
int x=0;
while(!info.equals("OVER"))
{
mt.addRow(new Vector());
for(int i=0;i<3;i++)
{
dlgtable.setValueAt(info,x,i);
info = in.readLine();
}
goodsInfo[x] = info;
info = in.readLine();
x++;
}
}catch(IOException ex){}
}
}
//////////////////////系统广播监听类//////////////
class SystemBroadcast extends Thread
{
private String broadcastmsg;
private String next;
private PrintWriter os;
private BufferedReader is;
private Socket listener;
SystemBroadcast()
{
try
{
String ip = socket.getInetAddress().getHostAddress();
listener = new Socket(ip, 8080);
is =
new BufferedReader(
new InputStreamReader(
listener.getInputStream()));
os =
new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(
listener.getOutputStream())),true);
}catch(Exception ex){}
broadcastmsg = "";
next = "";
start();
}
public void run()
{
try
{
while(!socket.isClosed())
{
this.sleep(1000);
os.println("BROADCAST");
next = is.readLine();
while(!next.equals("OVER"))
{
broadcastmsg +=next+"\n";
next = is.readLine();
}
broadcast.setText(broadcastmsg);
broadcastmsg = "";
}
}
catch(Exception ex){}
}
}
//////////////////////购物车确认对话框///////////
class BasketConfirm
{
private JDialog jd;
private JTable basketStatus;
private MyTable btable;
BasketConfirm()
{
jd = new JDialog(f,"购物车状态",true);
Container contentPane=jd.getContentPane();
String[] name = {"所属店铺","商品名","购入数量","总价","状态"};
btable = new MyTable(name,0);
basketStatus=new JTable(btable);
for(int i=0;i<basket.getIndex();i++)
{
btable.addRow(new Vector());
basketStatus.setValueAt(basket.getShop(i),i,0);
basketStatus.setValueAt(basket.getName(i),i,1);
basketStatus.setValueAt(basket.getQuantity(i),i,2);
basketStatus.setValueAt(basket.getPrice(i),i,3);
basketStatus.setValueAt(basket.getStatus(i),i,4);
}
JScrollPane p1 = new JScrollPane(basketStatus);
JPanel buttonPanel=new JPanel();
JButton b=new JButton("确认购入");
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
if(basketStatus.getSelectedRow()==-1)
{
JOptionPane.showMessageDialog(null,"请从列表中选择一份定单!","错误",2);
}
else if(basketStatus.getSelectedRowCount()>1)
{
for(int i=0;i<basketStatus.getSelectedRows().length;i++)
{
if(basketStatus.getValueAt(i,4).equals("unconfirmed"))
{
if(basket.confirm(i,in,out))
{
JOptionPane.showMessageDialog(null," 已确认购入商品:"+basketStatus.getValueAt(i,1),"确认成功",1);
basketStatus.setValueAt("confirmed",i,4);
amount.setText(customer.checkBalance(in,out)+"");
}
else
{
JOptionPane.showMessageDialog(null,"购入商品:"+basketStatus.getValueAt(i,1)+"失败!,请检查账户余额是否足够","确认失败",1);
}
}
}
}
else if(!basketStatus.getValueAt(basketStatus.getSelectedRow(),4).equals("unconfirmed"))
{
JOptionPane.showMessageDialog(null," 该商品已处理完成!","更改失败",3);
}
else
{
int i =basketStatus.getSelectedRow();
if(basket.confirm(i,in,out))
{
JOptionPane.showMessageDialog(null," 已确认购入商品:"+basketStatus.getValueAt(i,1),"确认成功",1);
basketStatus.setValueAt("confirmed",i,4);
amount.setText(customer.checkBalance(in,out)+"");
}
else
{
JOptionPane.showMessageDialog(null,"购入商品:"+basketStatus.getValueAt(i,1)+"失败!,请检查账户余额是否足够","确认失败",1);
}
}
}
});
buttonPanel.add(b);
b=new JButton("取消购入");
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
if(basketStatus.getSelectedRow()==-1)
{
JOptionPane.showMessageDialog(null,"请从列表中选择一份定单!","错误",2);
}
else if(basketStatus.getSelectedRowCount()>1)
{
for(int i=0;i<basketStatus.getSelectedRows().length;i++)
{
if(basketStatus.getValueAt(i,4).equals("unconfirmed") && basket.cancel(i,in,out))
{
JOptionPane.showMessageDialog(null," 已取消购入商品:"+basketStatus.getValueAt(i,1),"取消成功",1);
basketStatus.setValueAt("cancel",i,4);
amount.setText(customer.checkBalance(in,out)+"");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -