JAVA WEB項目的網絡購物網站源代碼的話,很復雜的話,肯定是沒有的,你可以去eoe或者安卓巴士網站看看有沒有源碼
創新互聯主要從事網站設計制作、成都網站設計、網頁設計、企業做網站、公司建網站等業務。立足成都服務義安,十年網站建設經驗,價格優惠、服務專業,歡迎來電咨詢建站服務:18980820575
import java.util.ArrayList;
public class Du {
public static void main(String[] args) throws Exception {
Seller seller = new Seller("My Store");
seller.addGoods("T-shirt", 200);
seller.addGoods("Pill", 100);
seller.addGoods("T-shirt", 100);
seller.addGoods("T-shirt", 50);
seller.addGoods("Pill", 50);
seller.addGoods("Hat", 100);
seller.printGoods();
Seller sell2 = new Seller("The Other Store");
sell2.addGoods("T-shirt", 200);
sell2.addGoods("Hat", 100);
sell2.sellGoods("T-shirt", 50);
sell2.addGoods("Hat", 100);
sell2.printGoods();
}
}
class Seller {
private String sellerName;
private int TotalTypeOfGoods;
private ArrayListString goodsNameList = new ArrayListString();
private ArrayListInteger goodsQuantityList = new ArrayListInteger();
public Seller(String sellerName) {
this.sellerName = sellerName;
}
public void addGoods(String goodName, int goodNum) {
int index = goodsNameList.indexOf(goodName);
if (index == -1) {
goodsNameList.add(goodName);
goodsQuantityList.add(new Integer(goodNum));
} else {
goodsQuantityList.set(index, goodsQuantityList.get(index)
.intValue()
+ goodNum);
}
TotalTypeOfGoods = goodsNameList.size();
}
public void sellGoods(String goodName, int goodNum) throws Exception {
if (TotalTypeOfGoods == 0) {
throw new Exception("No goods provided by the shop. Closed!");
}
int index = goodsNameList.indexOf(goodName);
if (index != -1) {
int qty = goodsQuantityList.get(index);
if (goodNum qty) {
throw new Exception("Insufficient goods in the shop. Sorry!");
}
goodsQuantityList.set(index, qty - goodNum);
}else{
throw new Exception("Our shop doesn't sell " + goodName);
}
}
public void printGoods() {
System.out.print("Seller :" + this.sellerName + "\t");
System.out.println("Totoal Types of Goods is :" + this.TotalTypeOfGoods);
for(int i = 0; i goodsNameList.size(); i++){
System.out.print("Goods Name: " + goodsNameList.get(i));
System.out.println("Remains: " + goodsQuantityList.get(i));
}
System.out.println();
}
}
-----------------testing
Seller :My Store Totoal Types of Goods is :3
Goods Name: T-shirtRemains: 350
Goods Name: PillRemains: 150
Goods Name: HatRemains: 100
Seller :The Other Store Totoal Types of Goods is :2
Goods Name: T-shirtRemains: 150
Goods Name: HatRemains: 200
話說網上真的好多啊...
package client;
import java.awt.Color;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class ClientFrame extends JFrame{
private JTextArea allmsg;
private JTextField welcome,copyright,chatmsg;
private JButton send;
private JScrollPane js;
private boolean isConnected = true;
public DataOutputStream out;
public DataInputStream in;
public Socket s = null;
String nic; /* -- 保存用戶昵稱 --*/
/**
* 初始化客戶端資源
* 1.獲取從LoginFrame傳遞過來的參數
* 2.初始化界面元素
* 3.初始化通信所需要的資源 EG:輸入/輸出流(DataInputStream/DataOutputStream)
* */
public ClientFrame(String name,Socket socket)
{
this.setSize(310,660);
this.setLocation(290,50);
this.setTitle("聊天室客戶端"+name+"");/* -- 指定窗口的標題 --*/
this.s = socket;/* -- 接收從LoginFrame中傳遞過來的Socket --*/
this.nic = name+" 說: ";
welcome = new JTextField(" "+name+" 歡迎您來到聊天室 ",100);
welcome.setBackground(Color.blue);
welcome.setEnabled(false);
copyright = new JTextField(" ----- all copyright @ TOP-king -----");
copyright.setEnabled(false);
allmsg = new JTextArea();
allmsg.setEditable(false);
allmsg.append(" 系統消息: 歡迎登錄在線聊天室 \n");
js = new JScrollPane(allmsg);//為JTextArea添加滾動條
chatmsg = new JTextField("在此輸入聊天信息");
chatmsg.addActionListener(new listen());
send = new JButton("發送");
send.addActionListener(new listen());/* -- 添加事件監聽器 --*/
try {
out = new DataOutputStream(s.getOutputStream());
in = new DataInputStream(s.getInputStream());
} catch (IOException e) {JOptionPane.showMessageDialog(null, "系統異常","錯誤",JOptionPane.OK_CANCEL_OPTION);}
addcomponettocontainer();
/* -- 當用戶關閉窗口時進行相關的處理 eg:Socket Data(Input/Output)Stream 的關閉--*/
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we)
{
sendmsg("quitlogout");/* -- 向服務器端發送關閉信息 --*/
isConnected = false;
destory();/* -- 銷毀窗口資源 --*/
}
});
new Thread(new linread()).start();/* -- 啟動讀取信息線程 --*/
}
public void addcomponettocontainer()
{
Container c = this.getContentPane();
c.setLayout(null);
welcome.setBounds(75,10,150,20);
js.setBounds(10,50,280,500);
chatmsg.setBounds(10,560,180,30);
send.setBounds(220,560,70,30);
copyright.setBounds(10,600,280,20);
c.add(welcome);
c.add(js);
c.add(chatmsg);
c.add(send);
c.add(copyright);
this.setVisible(true);
this.setResizable(false);
}
class listen implements ActionListener
{
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==send||e.getSource()==chatmsg)
{
String msg = chatmsg.getText().trim();
if("".equals(msg))
{
JOptionPane.showMessageDialog(null,"發送信息不能為空!","錯誤",JOptionPane.OK_OPTION);
}
else
{sendmsg((new Date()).toLocaleString()+"\n"+nic+msg+"\n");chatmsg.setText("");}
}
}
}
/* -- 向服務器端發送信息 --*/
public void sendmsg(String m)
{
if(isConnected)//如果socket的輸出流沒關閉
{
try {
out.writeUTF(m);
} catch (IOException e) {
JOptionPane.showMessageDialog(null,"發送信息失敗!(系統異常)","錯誤",JOptionPane.OK_OPTION);
}
}
else
{
JOptionPane.showMessageDialog(null,"發送信息失敗!(服務器關閉/網絡故障)","錯誤",JOptionPane.OK_OPTION);
}
}
/* -- 讀取信息線程 --*/
class linread implements Runnable
{
public void run()
{
read();
}
public void read()
{
while(isConnected)
{
try {
String msg = in.readUTF();
if("SYSTEM_CLOSED".equals(msg))
{
JOptionPane.showMessageDialog(null,"讀取消息失敗(服務器關閉/網絡故障)!","錯誤",JOptionPane.OK_OPTION);
isConnected = false;
}
else
allmsg.append(msg+"\n");
} catch (IOException e) {
}
}//end while
JOptionPane.showMessageDialog(null,"讀取消息失敗(服務器關閉/網絡故障)!","錯誤",JOptionPane.OK_OPTION);
}//end read()
}
public void destory()
{
try {
this.out.close();
this.in.close();
this.s.close();
} catch (IOException e) {
}
this.dispose();
}
}
======================================================
package client;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
public class LoginFrame extends JFrame{
private JTextField name;
private JTextField ip;
private JButton ok,cancle;
public Socket socket;
public LoginFrame()
{
super("登錄框");
this.setSize(400,80);
this.setLocation(100,100);
name = new JTextField("昵稱");
ip = new JTextField("127.0.0.1");
ok = new JButton("登錄");
cancle = new JButton("取消");
ok.addActionListener(new listenEvent());
cancle.addActionListener(new listenEvent());
//建立容器
addcomponettocontainer();
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
/**
* 建立容器及控件
*/
public void addcomponettocontainer()
{
Container c = this.getContentPane();
c.setLayout(null);
name.setBounds(10,10,100,30);
ip.setBounds(120,10,100,30);
ok.setBounds(230,10,70,30);
cancle.setBounds(310,10,70,30);
c.add(name);
c.add(ip);
c.add(ok);
c.add(cancle);
this.setVisible(true);
this.setResizable(false);
}
public class listenEvent implements ActionListener
{
public void actionPerformed(ActionEvent event) {
// TODO Auto-generated method stub
if(event.getSource()==ok)
{
String n = name.getText().trim();
String i = ip.getText().trim();
if("".equals(n)||"".equals(i))
{
JOptionPane.showMessageDialog(null,"昵稱、IP不能夠為空!","錯誤",JOptionPane.OK_OPTION);
}
else{login(n,i);}
}
if(event.getSource()==cancle)
{
name.setText("");
ip.setText("");
}
}
}
/**
* 進行登錄
* @param name
* @param ip
*/
public void login(String name,String ip)
{
try {
socket = new Socket(ip,7777);
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
out.writeUTF(name);
out.flush();//強制輸出緩存中的內容
//out.close();
new ClientFrame(name,socket);
destroywindow();
} catch (UnknownHostException e) {
JOptionPane.showMessageDialog(null,"找不到主機地址(IP錯誤/網絡故障)!","錯誤",JOptionPane.OK_OPTION);
} catch (IOException e) {
}
}
public void destroywindow()
{
this.dispose();
}
public static void main(String[] args)
{
new LoginFrame();
}
}
==================================================
package server;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class ServerFrame extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
private JTextArea allmsg;
private JTextField currnum,totalnum,copyright,chatmsg;
private JButton send;
private JScrollPane js;
int num1,num2,port;/* -- num1:當前在線人數 num2:總上線人數 port:服務端口號 --*/
private ServerSocket ss;
ArrayListuser lists;//存放所有在線用戶
public ServerFrame()
{
super("聊天室服務器端");
this.setSize(310,660);
this.setLocation(200,50);
lists = new ArrayListuser();
num1 = num2 =0;
port = 7777;
currnum = new JTextField(" 當前在線人數: "+num1);
currnum.setEnabled(false);
totalnum = new JTextField(" 上線總人數: "+num2);
totalnum.setEnabled(false);
copyright = new JTextField(" ----- all copyright @ TOP-king -----");
copyright.setEnabled(false);
allmsg = new JTextArea();
allmsg.append(" --------------- 系統消息 --------------\n");
allmsg.setEditable(false);
allmsg.setLineWrap(true); //允許自動換行
js = new JScrollPane(allmsg);//為JTextArea添加滾動條
chatmsg = new JTextField("在此輸入系統信息");
chatmsg.addActionListener(new ActionListener(){
@SuppressWarnings("deprecation")
public void actionPerformed(ActionEvent arg0) {
String str = chatmsg.getText().trim();
if(!"".equals(str))
{sendmsg((new Date()).toLocaleString()+" -- 系統消息: "+str);chatmsg.setText("");}
else
JOptionPane.showMessageDialog(null, "消息不能為空","錯誤",JOptionPane.OK_OPTION);
chatmsg.setText("");/* -- 發送信息后,將輸入欄中的信息清空 -- */
}
});
send = new JButton("發送");
send.addActionListener(new ActionListener(){
@SuppressWarnings("deprecation")
public void actionPerformed(ActionEvent arg0) {
String str = chatmsg.getText().trim();
if(!"".equals(str))
{sendmsg((new Date()).toLocaleString()+" -- 系統消息: "+str);chatmsg.setText("");}
else
JOptionPane.showMessageDialog(null, "消息不能為空","錯誤",JOptionPane.OK_OPTION);
chatmsg.setText("");/* -- 發送信息后,將輸入欄中的信息清空 -- */
}
});
//建立容器
addcomponettocontainer();
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we)
{
sendmsg("SYSTEM_CLOSED");/* -- 向客戶端發送服務器關閉信息 -- */
destory();
}
});
start(); /* -- 啟動連接服務 -- */
}
public void addcomponettocontainer()
{
//Container建立容器
Container c = this.getContentPane();
c.setLayout(null);
currnum.setBounds(20,15,130,20);
totalnum.setBounds(155,15,125,20);
js.setBounds(10,50,280,500);
chatmsg.setBounds(10,560,180,30);
send.setBounds(220,560,70,30);
copyright.setBounds(10,600,280,20);
c.add(currnum);
c.add(totalnum);
c.add(js);
c.add(chatmsg);
c.add(send);
c.add(copyright);
this.setVisible(true);
this.setResizable(false);
}
/**
* start()方法監聽客戶的連接
* 并且保存客戶端的相關信息EG:用戶昵稱、用戶所使用的Socket
* 用戶連接到服務器成功之后,將其保存到用戶列表中,并為該用戶啟動一個線程用于通信 */
@SuppressWarnings("deprecation")
public void start()
{
boolean isStarted = false;/* -- 用于標記服務器是否已經正常啟動 -- */
try {
this.ss = new ServerSocket(port);
isStarted = true;
this.allmsg.append((new Date()).toLocaleString()+" 服務器啟動 @ 端口: "+port+"\n");
while(isStarted)
{
Socket client = this.ss.accept(); /* -- 監聽客戶端的連接 -- */
DataInputStream in = new DataInputStream(client.getInputStream());
String name = in.readUTF();
user u = new user();
u.name = name;
u.socket = client;
lists.add(u); //將該用戶加到列表中去
num1++;
num2++;
currnum.setText(" 當前在線人數: "+num1);
totalnum.setText(" 上線總人數: "+num2);
this.allmsg.append((new Date()).toLocaleString()+" : "+u.name+" 登錄 \n");
new Thread(new ClientThread(u)).start();/* -- 為該用戶啟動一個通信線程 -- */
}
} catch (IOException e) {
System.out.println("服務器已經啟動......");
System.exit(0);
}
}
/**
* 通信線程主要功能包括:
* 1.監聽客戶端輸入的信息
* 2.將接收到的信息轉發給其他用戶 */
class ClientThread implements Runnable
{
user user = null;
boolean isConnected = true;
DataInputStream dis = null;
DataOutputStream dos = null;
public ClientThread(user u)
{
this.user = u;
try {
this.dis = new DataInputStream(this.user.socket.getInputStream());
this.dos = new DataOutputStream(this.user.socket.getOutputStream());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void run()
{
readmsg();
}
/* -- 讀取客戶的聊天信息 -- */
@SuppressWarnings("deprecation")
public void readmsg()
{
while(isConnected)
{
try {
String msg = dis.readUTF();
if("quitlogout".equals(msg))//當用戶關閉客戶端窗口時,發送quit字符串 表示用戶已經退出
{
num1--;
try{
this.dis.close();
this.dos.close();
this.user.socket.close();
this.isConnected = false;
}catch(IOException ioe)
{
ioe.printStackTrace();
}finally{
this.isConnected = false;
if(dis!=null) this.dis.close();
if(dos!=null) this.dos.close();
if(this.user.socket!=null) this.user.socket.close();
}
lists.remove(this.user);//從列表中刪除該用戶
currnum.setText(" 當前在線人數: "+num1);
allmsg.append((new Date()).toLocaleString()+" : "+this.user.name+" 退出\n");
}
else
sendmsg(msg);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/* -- 將信息進行轉發 -- */
public void sendmsg(String msg)
{
user us = new user();
DataOutputStream os = null;
if(lists.size()0)
{
for(int i=0;ilists.size();i++)
{
us = lists.get(i);
try {
os = new DataOutputStream(us.socket.getOutputStream());
os.writeUTF(msg);
} catch (IOException e) {
e.printStackTrace();
}
}
}
else
JOptionPane.showMessageDialog(null, "當前無用戶在線。發送消息失敗","失敗",JOptionPane.OK_OPTION);
}
public void destory()
{
try {
this.ss.close();
} catch (IOException e) {
e.printStackTrace();
}
this.dispose();
}
public static void main(String[] args)
{
new ServerFrame();
}
}
=================================================
package server;
import java.net.*;
public class user {
String name;
Socket socket;
}
網站標題:仿淘寶java源代碼 仿淘寶app源碼
轉載注明:http://vcdvsql.cn/article26/dosdgjg.html
成都網站建設公司_創新互聯,為您提供網站內鏈、微信公眾號、移動網站建設、建站公司、網站營銷、面包屑導航
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯