📄 shopmanager.java
字号:
gbc.gridy=1;
p1.add(l2,gbc);
amount = new JTextField(6);
gbc.gridx=1;
amount.setEditable(false);
amount.setText(merchant.checkBalance(in,out)+"");
p1.add(amount,gbc);
b = new JButton("存款");
b.addActionListener(this);
gbc.gridx=0;
gbc.gridy=2;
p1.add(b,gbc);
b = new JButton("取款");
b.addActionListener(this);
gbc.gridx=1;
gbc.gridy=2;
gbc.gridwidth = GridBagConstraints.REMAINDER;
p1.add(b,gbc);
/////////////////////////////店铺功能相关/////////////////////////////
JPanel p2 = new JPanel();
p2.setLayout(new GridLayout(7,1));
p2.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY,2),
"店铺功能选项",TitledBorder.CENTER,TitledBorder.TOP));
JPanel switchPanel = new JPanel();
switchButton = new JButton(" 开店 ");
switchButton.addActionListener(this);
switchPanel.add(switchButton);
JPanel buttonPanel1 = new JPanel();
b = new JButton("添加商品");
b.addActionListener(this);
buttonPanel1.add(b);
JPanel buttonPanel2 = new JPanel();
b = new JButton("编辑商品");
b.addActionListener(this);
buttonPanel2.add(b);
JPanel buttonPanel3 = new JPanel();
b = new JButton("删除商品");
b.addActionListener(this);
buttonPanel3.add(b);
JPanel buttonPanel4 = new JPanel();
b = new JButton("查看留言");
b.addActionListener(this);
buttonPanel4.add(b);
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);
p2.add(switchPanel);
p2.add(buttonPanel1);
p2.add(buttonPanel2);
p2.add(buttonPanel3);
p2.add(buttonPanel4);
p2.add(buttonPanel5);
p2.add(buttonPanel6);
/////////////////////////////店铺列表/////////////////////////////
String[] name = {"商品名称","单价","库存"};
defaultModel = new MyTable(name,0);
table=new JTable(defaultModel);
table.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
if(e.getClickCount()>=2)
{
new EditDialog();
}
}
});
table.addKeyListener(new KeyListener()
{
public void keyTyped(KeyEvent e)
{
}
public void keyReleased(KeyEvent e)
{
}
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()==KeyEvent.VK_DELETE)
{
deleteGoods();
}
}
});
table.setPreferredScrollableViewportSize(new Dimension(300, 80));
JScrollPane sp = new JScrollPane(table);
sp.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.BLACK,2),
"现有商品列表",TitledBorder.CENTER,TitledBorder.TOP));
String[] order = {"定单流水号","顾客名","商品名","订货数量"};
orderListModel = new MyTable(order,0);
orderList = new JTable(orderListModel);
orderList.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
if(e.getClickCount()>=2)
{
int choose = JOptionPane.showConfirmDialog(null,"是否确认已发出该定单所指定的商品?","发货完成确认",JOptionPane.YES_NO_OPTION);
if(choose==JOptionPane.YES_OPTION)
{
out.println("SENT");
out.println(orderList.getValueAt(orderList.getSelectedRow(),0));
viewOrder();
}
}
}
});
orderList.setPreferredScrollableViewportSize(new Dimension(300, 80));
JScrollPane spo = new JScrollPane(orderList);
spo.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.RED,2),
"已收到货款等待发货的订单列表",TitledBorder.CENTER,TitledBorder.TOP));
ad = new JTextArea(5,30);
ad.setFont(new Font("SansSerif",Font.PLAIN,16));
JScrollPane adsp = new JScrollPane(ad);
adsp.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.BLUE,2),
"广告信息",TitledBorder.CENTER,TitledBorder.TOP));
JPanel left = new JPanel();
left.setLayout(new BorderLayout());
left.add(p1,BorderLayout.NORTH);
left.add(p2,BorderLayout.CENTER);
JPanel right = new JPanel();
right.setLayout(new BorderLayout());
right.add(spo,BorderLayout.NORTH);
right.add(sp,BorderLayout.CENTER);
right.add(adsp,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);
f.setBounds(192,10,640,700);
f.setVisible(true);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
try
{
if(isOpen)
{
out.println("AD");
out.println(merchant.getUserName()+"的商店:"+merchant.getShopName()+"关店了!");
out.println("OVER");
}
close();
saveMsg();
logout();
in.close();
out.close();
socket.close();
}catch(IOException ex){}
System.exit(0);
}
});
renovate();
viewOrder();
new ShopServer(merchant.getUserName());
new OrderCheck();
}
///////////////////////事件处理///////////////////
public void actionPerformed(ActionEvent e)
{
String cmd=e.getActionCommand();
if (cmd.equals("存款"))
{
String str = JOptionPane.showInputDialog(null,"请输入存款额:","0.0");
if(str!=null)
{
try
{
double Amount = Double.parseDouble(str);
if(Amount<99999)
{
merchant.deposit(Amount,in,out);
amount.setText(merchant.checkBalance(in,out)+"");
}
else
{
JOptionPane.showMessageDialog(null,"虽说这是虚拟的,但您也太贪了吧-_-","失败",2);
}
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null," 存款失败","失败",2);
}
}
}
else if (cmd.equals("取款"))
{
String str = JOptionPane.showInputDialog(null,"请输入取款额:","0.0");
if(str!=null)
{
try
{
double Amount = Double.parseDouble(str);
if(Amount<=Double.parseDouble(amount.getText()))
{
merchant.withdraw(Amount,in,out);
amount.setText(merchant.checkBalance(in,out)+"");
}
else
{
JOptionPane.showMessageDialog(null," 您的余额不足!","失败",2);
}
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null," 取款失败","失败",2);
}
}
}
else if(cmd.equals(" 修改个人信息 "))
{
new UserEditDialog(f,merchant,in,out);
try
{
out.println("VIEW");
out.println(merchant.getId());
merchant.setUserName(in.readLine());
merchant.setPassword(in.readLine());
merchant.setAccount(Integer.parseInt(in.readLine()));
user.setText(merchant.getUserName());
}catch(Exception ex){}
}
else if(cmd.equals(" 修改店铺信息 "))
{
new ShopEditDialog();
}
else if (cmd.equals("添加商品"))
{
new AddDialog();
renovate();
}
else if (cmd.equals("编辑商品"))
{
if(table.getSelectedRow()==-1)
{
JOptionPane.showMessageDialog(null,"请从右侧的列表中选择一种需要编辑的商品!","编辑错误",2);
}
else
{
new EditDialog();
}
}
else if (cmd.equals("删除商品"))
{
if(table.getSelectedRow()==-1)
{
JOptionPane.showMessageDialog(null,"请从右侧的列表中选择一种将要删除的商品!","编辑错误",2);
}
else
{
deleteGoods();
renovate();
}
}
else if (cmd.equals("查看留言"))
{
new CheckMessageDialog();
}
else if (cmd.equals("发送广告"))
{
out.println("AD");
out.println(merchant.getUserName()+":"+ad.getText());
out.println("OVER");
ad.setText("");
}
else if(cmd.equals(" 开店 "))
{
open();
switchButton.setText(" 打烊 ");
isOpen = true;
out.println("AD");
out.println(merchant.getUserName()+"的商店:"+merchant.getShopName()+"开店了!");
out.println("OVER");
}
else if(cmd.equals(" 打烊 "))
{
close();
switchButton.setText(" 开店 ");
isOpen = false;
out.println("AD");
out.println(merchant.getUserName()+"的商店:"+merchant.getShopName()+"关店了!");
out.println("OVER");
}
else if (cmd.equals(" 退出 "))
{
try
{
if(isOpen)
{
out.println("AD");
out.println(merchant.getUserName()+"的商店:"+merchant.getShopName()+"关店了!");
out.println("OVER");
}
close();
saveMsg();
logout();
in.close();
out.close();
socket.close();
}catch(IOException ex){}
System.exit(0);
}
}
public void saveMsg()
{
try
{
File f= new File(merchant.getShopName()+".txt");
RandomAccessFile writeData = new RandomAccessFile(f,"rw");
writeData.setLength(0);
writeData.writeBytes(message);
writeData.close();
}catch(Exception ex){ex.printStackTrace();}
}
public void loadMsg()
{
try
{
File f= new File(merchant.getShopName()+".txt");
if(!f.exists())
{
System.out.print("no file");
f.createNewFile();
}
RandomAccessFile readData = new RandomAccessFile(f,"r");
String string=readData.readLine();
while(string!=null)
{
message += string+"\n";
string = readData.readLine();
}
readData.close();
}catch(Exception ex){ex.printStackTrace();}
}
public void logout()
{
try
{ out.println("LOGOUT");
out.println(merchant.getUserName());
out.println(merchant.getId());
out.println("END");
in.close();
out.close();
this.socket.close();
}catch(IOException e){}
}
public void updateMSG(String msg)
{
message += "\n"+msg;
}
public void deleteGoods()
{
if(JOptionPane.showConfirmDialog(null," 确定要删除:"+table.getValueAt(table.getSelectedRow(),0)+"吗?","确认删除",JOptionPane.CANCEL_OPTION,3)==JOptionPane.YES_OPTION)
{
try
{
String goodsName = (String)table.getValueAt(table.getSelectedRow(),0);
out.println("DELETE");
out.println(merchant.getShopName());
out.println(goodsName);
String result = in.readLine();
if(result.equals("SUCCESS"))
{
defaultModel.removeRow(table.getSelectedRow());
table.revalidate();
JOptionPane.showMessageDialog(null," 已删除商品:"+goodsName,"删除成功",2);
}
else
{
JOptionPane.showMessageDialog(null," 更新信息失败!","提交失败",2);
}
}catch(IOException ex){}
}
}
public void renovate()
{
while(defaultModel.getRowCount()!=0)
{
defaultModel.removeRow(0);
}
out.println("CREATSHOP");
out.println(merchant.getShopName());
try
{
String info = in.readLine();
int x=0;
while(!info.equals("OVER"))
{
defaultModel.addRow(new Vector());
for(int i=0;i<3;i++)
{
table.setValueAt(info,x,i);
info = in.readLine();
}
goodsInfo[x] = info;
info = in.readLine();
x++;
}
}catch(IOException e){}
}
public void viewOrder()
{
while(orderListModel.getRowCount()!=0)
{
orderListModel.removeRow(0);
}
out.println("OUTPUTORDER");
out.println(merchant.getShopName());
try
{
String info = in.readLine();
int x=0;
while(!info.equals("OVER"))
{
orderListModel.addRow(new Vector());
for(int i=0;i<4;i++)
{
orderList.setValueAt(info,x,i);
info = in.readLine();
}
x++;
}
}catch(IOException e){}
}
public void open()
{
out.println("OPEN");
out.println(merchant.getShopName());
out.println(merchant.getId());
}
public void close()
{
out.println("CLOSE");
out.println(merchant.getShopName());
out.println(merchant.getId());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -