• 大小: 176KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-11
  • 语言: Java
  • 标签:

资源简介

使用java Swing开发的基于UDP协议的简单聊天室,附带文件分享功能,文件分享是基于TCP协议实现的

资源截图

代码片段和文件信息

package personal.wt.chat;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.File;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Vector;

import javax.swing.BorderFactory;
import javax.swing.DefaultListModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.Jframe;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTable;
import javax.swing.filechooser.FileSystemView;
import javax.swing.table.DefaultTableModel;

import personal.wt.chat.server.ShareFileServer;
import personal.wt.chat.share.ShareFileTask;
import personal.wt.chat.util.SystemParam;
import personal.wt.chat.util.TimeAndDateUtil;

/**
 * Created by wantao on 2017/7/31.
 */
public class Chatframe extends Jframe implements ActionListener {
    /**
 * 
 */
private static final long serialVersionUID = 2L;
//    private JTextArea textArea = new JTextArea(1050);
    private DatagramSocket datagramSocket;
    private ContentPan contentPan = new ContentPan();
    private JScrollPane scrollPane = new JScrollPane();
    private JList list;
    private DefaultListModel listModel;
    
    private JSplitPane splitPane = null;
    private JTable table = null;
    private JScrollPane fileScroll = new JScrollPane();
    private static final int WIDTH = 550;
    private static final int HEIGHT = 350;
    private InputNameframe inputNameframe = new InputNameframe();
    private String nickName;
    public Chatframe() {
     this.inputNameframe.getBtn().addActionListener(this);
    }

    private class updateTask extends Thread {
        @Override
        public void run() {
           while(true){
               byte[] reBytes = new byte[64];
               DatagramPacket rePacket = new DatagramPacket(reBytes64);
               try{
                   datagramSocket.receive(rePacket);
               }catch (Exception e){}
                String message = new String(rePacket.getData());
               listModel.addElement(message);
               /*int k = message.lastIndexOf(‘:‘);
               String ipAndPort = message.substring(0 k);
               Chatframe.this.settitle(“Simple Chat Client“+ipAndPort);*/
           }
        }
    }

    public void updateModel() {
        new updateTask().start();
    }

    public void initModel() {
        listModel = new DefaultListModel();
        listModel.addElement(“欢迎来到召唤师峡谷!“);
    }

    public void init() {
     System.out.println(“this.nickName:“+this.nickName);
       

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        301  2017-08-01 22:10  chat3.0\.classpath

     文件        383  2017-08-02 14:16  chat3.0\.project

     文件        115  2018-03-24 22:00  chat3.0\.settings\org.eclipse.core.resources.prefs

     文件        598  2017-08-01 22:10  chat3.0\.settings\org.eclipse.jdt.core.prefs

     文件      60885  2017-08-01 22:44  chat3.0\bin\image\title.png

     文件       6325  2017-08-01 22:44  chat3.0\bin\image\_chat_icon.png

     文件       6871  2017-08-01 22:44  chat3.0\bin\image\_title_icon.png

     文件       1906  2018-03-24 23:34  chat3.0\bin\personal\wt\chat\Chatframe$ListMouseListener.class

     文件       3254  2018-03-24 23:34  chat3.0\bin\personal\wt\chat\Chatframe$SendListener.class

     文件       1228  2018-03-24 23:34  chat3.0\bin\personal\wt\chat\Chatframe$SendMsgKeyListener.class

     文件       1394  2018-03-24 23:34  chat3.0\bin\personal\wt\chat\Chatframe$updateTask.class

     文件       8317  2018-03-24 23:34  chat3.0\bin\personal\wt\chat\Chatframe.class

     文件       1664  2018-03-24 23:30  chat3.0\bin\personal\wt\chat\Client.class

     文件        575  2018-03-24 22:28  chat3.0\bin\personal\wt\chat\ClientMain.class

     文件       2198  2018-03-24 21:13  chat3.0\bin\personal\wt\chat\ContentPan.class

     文件       2539  2018-03-24 23:34  chat3.0\bin\personal\wt\chat\InputNameframe.class

     文件       4426  2018-03-24 23:32  chat3.0\bin\personal\wt\chat\server\ChatServer.class

     文件       2502  2018-03-24 21:40  chat3.0\bin\personal\wt\chat\server\ShareFileServer.class

     文件       1644  2018-03-24 21:41  chat3.0\bin\personal\wt\chat\share\ShareFileTask.class

     文件       1964  2018-03-24 21:13  chat3.0\bin\personal\wt\chat\util\SystemParam.class

     文件        742  2018-03-24 21:52  chat3.0\bin\personal\wt\chat\util\TimeAndDateUtil.class

     文件        902  2018-03-24 23:24  chat3.0\bin\personal\wt\chat\util\UdpSendUtil.class

     文件       1642  2018-03-24 22:00  chat3.0\bin\personal\wt\chat\util\UISetting.class

     文件        116  2018-03-24 21:01  chat3.0\config.properties

     文件      60885  2017-08-01 22:44  chat3.0\src\image\title.png

     文件       6325  2017-08-01 22:44  chat3.0\src\image\_chat_icon.png

     文件       6871  2017-08-01 22:44  chat3.0\src\image\_title_icon.png

     文件      10065  2018-03-24 23:34  chat3.0\src\personal\wt\chat\Chatframe.java

     文件       1300  2018-03-24 23:30  chat3.0\src\personal\wt\chat\Client.java

     文件        236  2018-03-24 22:28  chat3.0\src\personal\wt\chat\ClientMain.java

............此处省略30个文件信息

评论

共有 条评论