本代码是《从小白到大牛》电子书第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
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 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个文件信息
/*
* 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 QQ2006incoma51work6qqclientChatfr
文件 8796 2017-08-30 21:41 QQ2006incoma51work6qqclientChatfr
文件 1428 2017-08-30 21:40 QQ2006incoma51work6qqclientClient.class
文件 1181 2017-08-30 21:40 QQ2006incoma51work6qqclientFriendsfr
文件 1915 2017-08-30 21:40 QQ2006incoma51work6qqclientFriendsfr
文件 6889 2017-08-30 21:40 QQ2006incoma51work6qqclientFriendsfr
文件 736 2017-08-30 21:40 QQ2006incoma51work6qqclientLoginfr
文件 7465 2017-08-30 21:40 QQ2006incoma51work6qqclientLoginfr
目录 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个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)