资源简介
本代码是《从小白到大牛》电子书第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\.settings\org.eclipse.jdt.core.prefs
目录 0 2017-09-13 00:47 QQ2006\bin\
目录 0 2017-09-13 00:47 QQ2006\bin\com\
目录 0 2017-09-13 00:47 QQ2006\bin\com\a51work6\
目录 0 2017-09-13 00:47 QQ2006\bin\com\a51work6\qq\
目录 0 2017-09-13 00:47 QQ2006\bin\com\a51work6\qq\client\
文件 1065 2017-08-30 21:41 QQ2006\bin\com\a51work6\qq\client\Chatfr
文件 8796 2017-08-30 21:41 QQ2006\bin\com\a51work6\qq\client\Chatfr
文件 1428 2017-08-30 21:40 QQ2006\bin\com\a51work6\qq\client\Client.class
文件 1181 2017-08-30 21:40 QQ2006\bin\com\a51work6\qq\client\Friendsfr
文件 1915 2017-08-30 21:40 QQ2006\bin\com\a51work6\qq\client\Friendsfr
文件 6889 2017-08-30 21:40 QQ2006\bin\com\a51work6\qq\client\Friendsfr
文件 736 2017-08-30 21:40 QQ2006\bin\com\a51work6\qq\client\Loginfr
文件 7465 2017-08-30 21:40 QQ2006\bin\com\a51work6\qq\client\Loginfr
目录 0 2017-09-13 00:47 QQ2006\bin\com\a51work6\qq\server\
文件 1027 2017-08-30 21:40 QQ2006\bin\com\a51work6\qq\server\ClientInfo.class
文件 166 2017-06-30 15:57 QQ2006\bin\com\a51work6\qq\server\config.properties
文件 1857 2017-08-30 21:40 QQ2006\bin\com\a51work6\qq\server\DBHelper.class
文件 6628 2017-08-30 21:40 QQ2006\bin\com\a51work6\qq\server\Server.class
文件 4836 2017-08-30 21:40 QQ2006\bin\com\a51work6\qq\server\UserDAO.class
目录 0 2017-09-13 00:47 QQ2006\bin\org\
目录 0 2017-09-13 00:47 QQ2006\bin\org\json\
文件 4450 2017-08-30 21:40 QQ2006\bin\org\json\CDL.class
文件 3154 2017-08-30 21:40 QQ2006\bin\org\json\Cookie.class
文件 2259 2017-08-30 21:40 QQ2006\bin\org\json\CookieList.class
文件 2971 2017-08-30 21:40 QQ2006\bin\org\json\HTTP.class
文件 1106 2017-08-30 21:40 QQ2006\bin\org\json\HTTPTokener.class
............此处省略504个文件信息
相关资源
- JavaSwing版PetStore宠物商店项目源代码
- java 仿QQ聊天工具 含视屏语音聊天
- java项目开发文档
- Java咖啡机项目
- java_仓库管理系统
- java版及时聊天系统仿QQ制作源码
- android socket 高仿QQ
- 一个完成的java项目
- 基于jsp技术的仿webqq聊天系统
- 模仿QQ实现的聊天软件可当做java大作
- java项目经验整理.rar
- JAVA仿QQ聊天系统
- 基于socket带客户端服务器端和数据库
- Android仿QQ基于Bmob聊天项目源码
- 仿QQ聊天系统174628
- Java仿QQ聊天
- 30天学通Java项目案例开发(完整源代
- Java ssh 经典Java项目源码,人事管理系
- 老版本安卓软件
- 深入体验JAVA项目开发
- java项目实训实现的仙剑奇侠传游戏
- J2ME模拟器模拟2007版的手机QQ
- 仿QQ空间源码
- Android项目源码仿QQ空间的心情驿站源
- java项目开发案例整合
- Java经典项目集锦
- ffmpeg解码的java项目
- 安卓模拟qq登录界面 及联系人列表和
- Android之第三方平台实现QQ登录和QQ分享
- java坦克大战
评论
共有 条评论