• 大小: 87KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-17
  • 语言: Java
  • 标签: 多线程  GUI  聊天  绘画  

资源简介

采用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(“发送“);
JButton btn_sendGraph = new JButton(“发送图片“);
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个文件信息

评论

共有 条评论