📄 hall.java
字号:
package RegisterAndLogin;
import java.awt.BorderLayout;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JScrollPane;
import java.awt.Rectangle;
import java.awt.List;
import java.awt.Button;
import javax.swing.JButton;
import java.awt.GridBagLayout;
import java.net.*;
import java.io.*;
import java.sql.*;
import javax.sql.*;
import java.sql.ResultSet;
import javax.sql.rowset.CachedRowSet;
import javax.swing.JLabel;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import java.awt.GridBagConstraints;
import javax.swing.JTable;
import java.awt.event.*;
import javax.swing.JTabbedPane;
import javax.swing.Icon;
import java.awt.image.*;
public class Hall extends JFrame implements QuanJu{
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JButton jButtonCart = null;
private JButton jButtonPersonalInfo = null;
private JLabel imagelabel=new JLabel();
private Socket clientSocket=null;
private ObjectOutputStream os=null;
private ObjectInputStream is=null;
private merchandise goods=null; // 一件商品
// private AllMerchandise Allgoods=new AllMerchandise(); // 正在逛的店铺的所有商品
// private CartItem cartitem=null; // 购物车中的一个条目
// public Cart cart=new Cart(); // 购物车
// public String shopName=""; // @jve:decl-index=0:
private JButton jButtonPutIntoCart = null;
private JScrollPane jScrollPane = null;
private JTable jTableGoods = null;
private JTabbedPane jTabbedPane = null;
private JScrollPane jScrollPane1OnLine = null;
private JScrollPane jScrollPane1OffLine = null;
public List OnLinelist = null;
public List OffLinelist = null;
private JButton jButtonInformation = null;
private JButton jButtonExit = null;
private JButton jButtonHistory = null;
private JButton jButtonBargain = null;
public String username="";//登录者的用户名 // @jve:decl-index=0:
/**
* This is the default constructor
*/
public Hall(Socket clientSocket,ObjectOutputStream os,ObjectInputStream is,String username) {
super();
try
{
this.clientSocket=clientSocket;
this.os=os;
this.is=is;
this.username=username;
//clientSocket=new Socket("localhost",8000);
//os=new ObjectOutputStream(clientSocket.getOutputStream());
//is=new ObjectInputStream(clientSocket.getInputStream());
}
catch (Exception ex)
{
System.out.println(ex);
}
initialize();
getList();
}
public void getList()
{
String Msg=ConstanValue.MSG_ONLINE_SHOP;
try{
os.writeObject(Msg);
os.flush();
Msg=(String)is.readObject();
if(Msg.equals(ConstanValue.MSG_ONLINE_SHOP))
{
CachedRowSet crs=(CachedRowSet)is.readObject();
ResultSetMetaData md=crs.getMetaData();
if(crs.isBeforeFirst())
{
crs.beforeFirst();
}
int c=md.getColumnCount();
System.out.println(c);
while(crs.next())
{
String shopid=crs.getString("shopID");
String shoprealname=crs.getString("shopRealName");
String hostid=crs.getString("hostID");
Boolean isOnLine=crs.getBoolean("loginFlag");
Boolean LoginAsHost=crs.getBoolean("loginAsHost");
if(isOnLine==true&&LoginAsHost==true)
{
System.out.println(shopid);
OnLinelist.addItem(shopid);
}
else
{
OffLinelist.addItem(shopid);
System.out.println(shopid);
}
}
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(951, 503);
this.setContentPane(getJContentPane());
this.setTitle("购物大厅");
this.setVisible(true);
}
/**
* 处理窗口关闭事件
*
*/
public void processWindowEvent(WindowEvent event)
{
if(event.getID()==WindowEvent.WINDOW_CLOSING)
{
if(cart.isfull())
{
String msg=ConstanValue.MSG_LOGOUT;
try{
os.writeObject(msg);
os.flush();
os.close();
is.close();
clientSocket.close();
// msg=(String)is.readObject();
// JOptionPane.showMessageDialog(null, msg);
System.exit(0);
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
else
{
Object[] options = { "OK", "CANCEL" };
int value=JOptionPane.showOptionDialog(null, "您的购物车中有商品未支付,是否放弃?单击“YES”:放弃 单击“NO”:返回支付","warning" ,
JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE,null,
options, options[0]);
if(value==0)
{
//清空购物车
cart.clear();
//发送放弃购物车中的商品
String Msg=ConstanValue.MSG_DENEY_ALL_BUY;
try{
os.writeObject(Msg);
Msg=(String)is.readObject();
JOptionPane.showMessageDialog(null, Msg);
Msg=ConstanValue.MSG_LOGOUT;
os.writeObject(Msg);
//Msg=(String)is.readObject();
//JOptionPane.showMessageDialog(null, Msg);
os.close();
is.close();
clientSocket.close();
System.exit(0);
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
else
{
JOptionPane.showMessageDialog(null, "请支付");
}
}
}
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getJButtonCart(), null);
jContentPane.add(getJButtonPersonalInfo(), null);
jContentPane.add(getJButtonPutIntoCart(), null);
jContentPane.add(getJScrollPane(), null);
jContentPane.add(getJTabbedPane(), null);
jContentPane.add(getJButtonInformation(), null);
jContentPane.add(getJButtonExit(), null);
jContentPane.add(getJButtonHistory(), null);
jContentPane.add(getJButtonBargain(), null);
}
return jContentPane;
}
/**
* This method initializes jButtonCart
*
* @return javax.swing.JButton
*/
private JButton getJButtonCart() {
if (jButtonCart == null) {
jButtonCart = new JButton();
jButtonCart.setBounds(new Rectangle(157, 25, 189, 44));
jButtonCart.setText("查看购物车 &结算中心");
//Icon CartIcon=new Icon("image/image2.gif");
ImageIcon image=new ImageIcon("image/image2.gif");
jButtonCart.setIcon(image);
jButtonCart.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
ViewCart newFrame=new ViewCart(clientSocket,os,is);
}
});
}
return jButtonCart;
}
/**
* This method initializes jButtonPersonalInfo
*
* @return javax.swing.JButton
*/
private JButton getJButtonPersonalInfo() {
if (jButtonPersonalInfo == null) {
jButtonPersonalInfo = new JButton();
jButtonPersonalInfo.setBounds(new Rectangle(351, 25, 158, 47));
jButtonPersonalInfo.setText("查看或修改个人信息");
jButtonPersonalInfo.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
String Msg=ConstanValue.MSG_INFO_LOGINOR;
try{
os.writeObject(Msg);
Msg=(String)is.readObject();
CachedRowSet crs=(CachedRowSet)is.readObject();
ResultSetMetaData md=crs.getMetaData();
if(crs.isBeforeFirst())
{
crs.beforeFirst();
}
String name="";
String realname="";
String sex="";
String address="";
String email="";
String profession="";
float account=0;
while(crs.next())
{
name=crs.getString("userName");
realname=crs.getString("userRealName");
sex=crs.getString("userSex");
address=crs.getString("address");
email=crs.getString("Email");
profession=crs.getString("profession");
account=crs.getFloat("visulMoney");
}
PersonalInformation thisclass=new PersonalInformation( clientSocket,os,is, name,
realname,
sex,
address,
email,
profession,
account);
}catch(Exception ex)
{
ex.printStackTrace();
}
}
});
}
return jButtonPersonalInfo;
}
/**
* This method initializes jButtonPutIntoCart
*
* @return javax.swing.JButton
*/
private JButton getJButtonPutIntoCart() {
if (jButtonPutIntoCart == null) {
jButtonPutIntoCart = new JButton();
jButtonPutIntoCart.setBounds(new Rectangle(379, 415, 178, 44));
jButtonPutIntoCart.setText("放入购物车");
jButtonPutIntoCart.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
if(jTableGoods.getSelectedRow()==-1)
{
JOptionPane.showMessageDialog(null, "请选中一件商品");
}
else
{
//将一件商品放入购物车
int index=jTableGoods.getSelectedRow();
String name=(String)jTableGoods.getValueAt(index,1);
if(name.equals(""))
JOptionPane.showMessageDialog(null, "请选中一件商品");
else
{
int goodsid=(Integer)jTableGoods.getValueAt(index, 0);
String sailerid=(String)jTableGoods.getValueAt(index,1);
float price=(Float)jTableGoods.getValueAt(index, 3);
String Msg=ConstanValue.MSG_BUY_ONE_GOODS_DIRECT;
if(cart.isExist(goodsid))
JOptionPane.showMessageDialog(null,"您的购物车中已有此商品!");
else
{
String value=JOptionPane.showInputDialog(null, "请输入您要购买的数量", (Integer)1);
int num=Integer.parseInt(value.trim());
try
{os.writeObject(Msg);
os.writeObject(sailerid);
os.writeInt(goodsid);
os.writeInt(num);
os.writeFloat(price);
os.flush();
Msg=(String)is.readObject();
if(Msg.equals(ConstanValue.ACC_BUY_ONE_GOODS_DIRECT))
{
merchandise mer=store.getoneItem(goodsid);
cart.addItem(goodsid, mer);
cart.setItemNum(goodsid, num);
JOptionPane.showMessageDialog(null, Msg);
}
else
{
String exp=(String)is.readObject();
JOptionPane.showMessageDialog(null, exp);
}
}
catch(Exception ex)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -