資源簡介
采用java編寫,利用多線程,服務器客戶端,socket等知識,實現局域網多個客戶端之間聊天,實時繪圖(一個客戶端繪圖的同時其他客戶端能同步顯示),異步繪圖(繪畫完成后再傳輸到其他客戶端),對初學者有很高參考意義。

代碼片段和文件信息
package?client;
import?java.awt.BasicStroke;
import?java.awt.BorderLayout;
import?java.awt.Color;
import?java.awt.Dimension;
import?java.awt.EventQueue;
import?java.awt.Font;
import?java.awt.Graphics;
import?java.awt.Graphics2D;
import?java.awt.Point;
import?java.awt.Toolkit;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?java.awt.event.MouseEvent;
import?java.awt.event.MouseListener;
import?java.awt.event.MouseMotionListener;
import?java.io.IOException;
import?java.io.objectInputStream;
import?java.io.objectOutputStream;
import?java.net.Socket;
import?java.net.SocketException;
import?java.net.UnknownHostException;
import?java.util.ArrayList;
import?java.util.List;
import?javax.swing.BorderFactory;
import?javax.swing.Box;
import?javax.swing.ImageIcon;
import?javax.swing.JButton;
import?javax.swing.JColorChooser;
import?javax.swing.JComboBox;
import?javax.swing.Jframe;
import?javax.swing.JLabel;
import?javax.swing.JPanel;
import?javax.swing.JScrollPane;
import?javax.swing.JSlider;
import?javax.swing.JTextArea;
import?javax.swing.JTextPane;
import?javax.swing.border.EmptyBorder;
import?javax.swing.event.ChangeEvent;
import?javax.swing.event.ChangeListener;
//畫筆選擇
enum?PaintChoose?{
LINE?OVAL?RECT?PEN?ERASER
}
@SuppressWarnings(“serial“)
public?class?Client?extends?Jframe?{
private?JPanel?contentPane;
private?Chat?chat;
private?Canvas?canvas;
private?Socket?socket;
private?objectInputStream?objin;
private?objectOutputStream?objout;
private?List?graph_list?=?new?ArrayList();
private?List?server_graph?=?new?ArrayList();
private?boolean?begin?=?false;
private?boolean?show?=?false;
private?Thread?my_thread?=?new?Thread(new?MyClientThread());
JButton?btn_Send?=?new?JButton(“發(fā)送“);
JButton?btn_sendGraph?=?new?JButton(“發(fā)送圖片“);
JButton?btn_getGraph?=?new?JButton(“獲取圖片“);
JButton?btn_show?=?new?JButton(“實時(關閉)“);
private?JTextArea?textArea;
private?JTextPane?textPane?=?new?JTextPane();
private?JLabel?us?=?new?JLabel(“用戶名:“);
private?JTextArea?username?=?new?JTextArea(“用戶名“);
public?void?startChat()?{
try?{
socket?=?new?Socket(“127.0.0.1“?8005);
objout?=?new?objectOutputStream(socket.getOutputStream());
objin?=?new?objectInputStream(socket.getInputStream());
begin?=?true;
}?catch?(UnknownHostException?e)?{
e.printStackTrace();
}?catch?(IOException?e)?{
e.printStackTrace();
}
}
public?static?void?main(String[]?args)?{
EventQueue.invokeLater(new?Runnable()?{
public?void?run()?{
try?{
Client?frame?=?new?Client();
frame.setSize(1050?700);
frame.settitle(“網絡白板客戶端“);
Dimension?dem?=?Toolkit.getDefaultToolkit().getScreenSize();
frame.setLocation(
(int)?(dem.getWidth()?-?frame.getWidth())?/?2
(int)?(dem.getHeight()?-?frame.getHeight())?/?2);
frame.setVisible(true);
//?frame.setResizable(fa
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-03-11?21:56??網絡白板\
?????目錄???????????0??2015-03-11?21:56??網絡白板\project3\
?????文件?????????301??2014-11-22?13:31??網絡白板\project3\.classpath
?????文件?????????384??2014-11-22?13:31??網絡白板\project3\.project
?????目錄???????????0??2015-03-11?21:56??網絡白板\project3\.settings\
?????文件?????????598??2014-11-22?13:31??網絡白板\project3\.settings\org.eclipse.jdt.core.prefs
?????目錄???????????0??2015-03-11?21:56??網絡白板\project3\bin\
?????目錄???????????0??2015-03-11?21:56??網絡白板\project3\bin\client\
?????文件????????1176??2014-11-26?19:47??網絡白板\project3\bin\client\Client$1.class
?????文件????????1686??2014-11-26?19:47??網絡白板\project3\bin\client\Client$2.class
?????文件????????1272??2014-11-26?19:47??網絡白板\project3\bin\client\Client$3.class
?????文件?????????992??2014-11-26?19:47??網絡白板\project3\bin\client\Client$4.class
?????文件?????????792??2014-11-26?19:47??網絡白板\project3\bin\client\Client$Canvas$1.class
?????文件?????????935??2014-11-26?19:47??網絡白板\project3\bin\client\Client$Canvas$10.class
?????文件?????????940??2014-11-26?19:47??網絡白板\project3\bin\client\Client$Canvas$11.class
?????文件?????????940??2014-11-26?19:47??網絡白板\project3\bin\client\Client$Canvas$12.class
?????文件?????????952??2014-11-26?19:47??網絡白板\project3\bin\client\Client$Canvas$13.class
?????文件?????????952??2014-11-26?19:47??網絡白板\project3\bin\client\Client$Canvas$14.class
?????文件?????????952??2014-11-26?19:47??網絡白板\project3\bin\client\Client$Canvas$15.class
?????文件?????????954??2014-11-26?19:47??網絡白板\project3\bin\client\Client$Canvas$16.class
?????文件????????1031??2014-11-26?19:47??網絡白板\project3\bin\client\Client$Canvas$17.class
?????文件????????1198??2014-11-26?19:47??網絡白板\project3\bin\client\Client$Canvas$18.class
?????文件????????1219??2014-11-26?19:47??網絡白板\project3\bin\client\Client$Canvas$19.class
?????文件?????????949??2014-11-26?19:47??網絡白板\project3\bin\client\Client$Canvas$2.class
?????文件????????1113??2014-11-26?19:47??網絡白板\project3\bin\client\Client$Canvas$3.class
?????文件?????????858??2014-11-26?19:47??網絡白板\project3\bin\client\Client$Canvas$4.class
?????文件?????????940??2014-11-26?19:47??網絡白板\project3\bin\client\Client$Canvas$5.class
?????文件?????????940??2014-11-26?19:47??網絡白板\project3\bin\client\Client$Canvas$6.class
?????文件?????????939??2014-11-26?19:47??網絡白板\project3\bin\client\Client$Canvas$7.class
?????文件?????????939??2014-11-26?19:47??網絡白板\project3\bin\client\Client$Canvas$8.class
?????文件?????????937??2014-11-26?19:47??網絡白板\project3\bin\client\Client$Canvas$9.class
............此處省略55個文件信息
評論
共有 條評論