Java QQ聊天工具源代码


本代码是《从小白到大牛》电子书第30章实战项目(Java版QQ聊天工具)源代码,项目采用Eclipse开发。所涉及到的知识点:Java面向对象、Lambda表达式、Java Swing技术、多线程技术和网络通信等知识,其中还会用到方方面面的Java基础知识。 ​【相关Java视频课程】: 1、http://www.zhijieketang.com/classroom/6/introduction ​【配套电子书】网址: 1、图灵社区:http://www.ituring.com.cn/book/2480 2、百度阅读:https://yuedu.baidu.com/ebook/7c1499987e192279168884868762caaedd33ba00
资源截图
代码片段和文件信息
/*
* Created by 智捷课堂
* 本书网站:www.51work6.com 
* 智捷课堂在线课堂:www.zhijieketang.com
* 智捷课堂微信公共号:zhijieketang
* 邮箱:eorient@sina.com
* Java读者服务QQ群:547370999
* 【配套电子书】网址:
*       图灵社区:
*       http://www.ituring.com.cn/book/2480
*       百度阅读:
*       https://yuedu.baidu.com/ebook/7c1499987e192279168884868762caaedd33ba00 
*/

package com.a51work6.qq.client;

import java.awt.Color;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.Jframe;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

import org.json.JSONArray;
import org.json.JSONobject;

public class Chatframe extends Jframe implements Runnable {

private boolean isRunning = true;

// 当前用户Id
private String userId;
// 聊天好友用户Id
private String friendUserId;
// 聊天好友用户名
private String friendUserName;

// 获得当前屏幕的高宽
private double screenHeight = Toolkit.getDefaultToolkit().getScreenSize().getHeight();
private double screenWidth = Toolkit.getDefaultToolkit().getScreenSize().getWidth();

// 登录窗口宽高
private int frameWidth = 345;
private int frameHeight = 310;

// 查看消息文本区
private JTextArea txtMainInfo;
// 发送消息文本区
private JTextArea txtInfo;
// 消息日志
private StringBuffer infoLog;

// 接收消息子线程
private Thread receiveMessageThread;
// 日期格式化
private DateFormat dateFormat = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss“);
// 好友列表frame
private Friendsframe friendsframe;

public Chatframe(Friendsframe friendsframe Map user Map friend) {

// 初始化成员变量
this.friendsframe = friendsframe;

this.userId = user.get(“user_id“);
String userIcon = user.get(“user_icon“);

this.friendUserId = friend.get(“user_id“);
this.friendUserName = friend.get(“user_name“);

this.infoLog = new StringBuffer();

// 初始化查看消息面板
getContentPane().add(getPanLine1());
// 初始化发送消息面板
getContentPane().add(getPanLine2());

/// 初始化当前frame
String iconFile = String.format(“/resource/img/%s.jpg“ userIcon);
setIconImage(Toolkit.getDefaultToolkit().getImage(Client.class.getResource(iconFile)));
String title = String.format(“与%s聊天中...“ friendUserName);
settitle(title);
setResizable(false);
getContentPane().setLayout(null);

// 设置frame大小
setSize(frameWidth frameHeight);
// 计算frame位于屏幕中心的坐标
int x = (int) (screenWidth - frameWidth) / 2;
int y = (int) (screenHeight - frameHeight) / 2;
// 设置frame位于屏幕中心
setLocation(x y);

receiveMessageThread = new Thread(this);
receiveMessageThread.start();

// 注册窗口事件
addWindowListener(new WindowAdapter() {

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-09-13 00:47  QQ2006
     文件         378  2017-06-27 16:14  QQ2006.classpath
     文件         382  2017-07-01 00:33  QQ2006.project
     目录           0  2017-09-13 00:47  QQ2006.settings
     文件         598  2017-06-23 10:53  QQ2006.settingsorg.eclipse.jdt.core.prefs
     目录           0  2017-09-13 00:47  QQ2006in
     目录           0  2017-09-13 00:47  QQ2006incom
     目录           0  2017-09-13 00:47  QQ2006incoma51work6
     目录           0  2017-09-13 00:47  QQ2006incoma51work6qq
     目录           0  2017-09-13 00:47  QQ2006incoma51work6qqclient
     文件        1065  2017-08-30 21:41  QQ2006incoma51work6qqclientChatframe$1.class
     文件        8796  2017-08-30 21:41  QQ2006incoma51work6qqclientChatframe.class
     文件        1428  2017-08-30 21:40  QQ2006incoma51work6qqclientClient.class
     文件        1181  2017-08-30 21:40  QQ2006incoma51work6qqclientFriendsframe$1.class
     文件        1915  2017-08-30 21:40  QQ2006incoma51work6qqclientFriendsframe$2.class
     文件        6889  2017-08-30 21:40  QQ2006incoma51work6qqclientFriendsframe.class
     文件         736  2017-08-30 21:40  QQ2006incoma51work6qqclientLoginframe$1.class
     文件        7465  2017-08-30 21:40  QQ2006incoma51work6qqclientLoginframe.class
     目录           0  2017-09-13 00:47  QQ2006incoma51work6qqserver
     文件        1027  2017-08-30 21:40  QQ2006incoma51work6qqserverClientInfo.class
     文件         166  2017-06-30 15:57  QQ2006incoma51work6qqserverconfig.properties
     文件        1857  2017-08-30 21:40  QQ2006incoma51work6qqserverDBHelper.class
     文件        6628  2017-08-30 21:40  QQ2006incoma51work6qqserverServer.class
     文件        4836  2017-08-30 21:40  QQ2006incoma51work6qqserverUserDAO.class
     目录           0  2017-09-13 00:47  QQ2006inorg
     目录           0  2017-09-13 00:47  QQ2006inorgjson
     文件        4450  2017-08-30 21:40  QQ2006inorgjsonCDL.class
     文件        3154  2017-08-30 21:40  QQ2006inorgjsonCookie.class
     文件        2259  2017-08-30 21:40  QQ2006inorgjsonCookieList.class
     文件        2971  2017-08-30 21:40  QQ2006inorgjsonHTTP.class
     文件        1106  2017-08-30 21:40  QQ2006inorgjsonHTTPTokener.class
............此处省略504个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)