java在线聊天项目
文章平均质量分 80
Advancing-Swift
Never waste time any more ,Never old man be a yong man
展开
-
在线聊天项目1.4版 使用Gson方法解析Json字符串以便重构request和response的各种请求和响应 解决聊天不畅问题 Gson包下载地址
在线聊天项目结构图:多用户登陆效果图:多用户聊天效果图:数据库效果图:重新构建了Server类,使用了Gson方法,通过解析Json字符串,增加Info类,简化判断过程。Server类代码如下:package com.swift.server;import java.io.DataInputStream;import java.io.DataOutputStream;原创 2018-01-01 00:44:26 · 633 阅读 · 0 评论 -
java在线聊天项目1.0版 异常处理——开启多个客户端,关闭一个客户端后,在其他客户端中再发出信息会出现异常的处理
异常一只开启一个客户端,输入信息后关闭,客户端出现如下异常根据异常说明 ChatClientFrame客户端117行提示原因是Socket关闭分析原因客户端代码 while (connected) { String str = dis.readUTF();当窗口关闭后,Socket已经关闭,读的操作还在继续处理这个异常,代码原创 2018-01-01 00:43:18 · 309 阅读 · 0 评论 -
java在线聊天项目0.9版 实现把服务端接收到的信息返回给每一个客户端窗口中显示功能之客户端接收
客户端要不断接收服务端发来的信息与服务端不断接收客户端发来信息相同,使用线程的方法,在线程中循环接收客户端修改后代码如下:package com.swift;import java.awt.BorderLayout;import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.Actio原创 2018-01-01 00:43:05 · 677 阅读 · 0 评论 -
java在线聊天项目0.8版 实现把服务端接收到的信息返回给每一个客户端窗口中显示功能
迭代器的方式会产生锁定服务器端增加发送给每个客户端已收到信息的功能所以当获取到一个socket,并打开它的线程进行循环接收客户端发来信息时,我们把这个内部类的线程Client保存到集合List中然后在读取到客户端信息后,把这个信息发送给所有端口通过循环for(int i=0;i Client c=clients.get(i); c.send(str);}发送给每一个已经成功连原创 2018-01-01 00:43:02 · 347 阅读 · 0 评论 -
java在线聊天项目0.7版 连接多个客户端问题,开启多个客户端后服务器端只接收到一个 对各种异常的补充处理
问题的原因是 while(connected) { String str=dis.readUTF(); System.out.println(str); }不断循环执行,一直在死循环获取socket发送的信息,使得前面的语句s = ss.accept(); connect原创 2018-01-01 00:43:00 · 319 阅读 · 0 评论 -
java在线聊天项目0.6版 解决客户端关闭后异常问题 dis.readUTF()循环读取已关闭的socket
服务端对try catch finally重新进行了定义,当发生异常,主动提示,或关闭出现异常的socket服务器端代码修改如下:package com.swift;import java.io.DataInputStream;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket原创 2018-01-01 00:42:57 · 456 阅读 · 0 评论 -
java在线聊天项目0.5版 解决客户端向服务器端发送信息时只能发送一次问题 OutputStreamWriter DataOutputStream socket.getOutputStream()
没有解决问题之前客户端代码:package com.swift;import java.awt.BorderLayout;import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;i原创 2018-01-01 00:42:50 · 897 阅读 · 0 评论 -
java在线聊天项目0.4版本 制作服务端接收连接,客户端连接功能 新增客户端窗口打开时光标指向下边文本域功能,使用WindowListener监听WindowAdapter
建一个服务端类ChatServer,用于设置端口接收连接package com.swift;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class ChatServer { public static void main(String[] arg原创 2018-01-01 00:42:47 · 203 阅读 · 0 评论 -
java在线聊天项目0.3版本 制作客户端窗体,实现发送按钮和回车发送信息功能,使用ActionListener监听事件中actionPerformed方法(用内部类和匿名内部类两种方法)
方法一,使用匿名内部类的监听方法,因方法一致代码稍冗余package com.swift;import java.awt.BorderLayout;import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.Key原创 2018-01-01 00:42:45 · 2565 阅读 · 0 评论 -
java在线聊天项目0.2版本 制作客户端窗体,使用swing(用户界面开发工具包)和awt(抽象窗口工具包) BorderLayout布局与GridLayout布局不同之处 JPanel设置大小
代码如下:package com.swift;import java.awt.BorderLayout;import java.awt.Color;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import jav原创 2018-01-01 00:42:42 · 280 阅读 · 0 评论 -
java在线聊天项目 使用SWT快速制作登录窗口,可视化窗口Design 更换窗口默认皮肤(切换Swing自带的几种皮肤如矩形带圆角)
SWT成功激活后new一个JDialog调整到Design视图默认的视图模式是BorderLayout,无论你怎么拖拽,只能放到东西南北中的位置上所以,我们把视图模式调整为AbsoluteLayout,这样我们可以把小控件拖拽到任意我们需要的位置发现,这个窗口的皮肤不是很好看,文本框和按钮都是直角矩形如何更换皮肤呢?更换Swing自带的Nimbus皮肤JFrame.setDefau原创 2018-01-01 00:43:27 · 714 阅读 · 0 评论 -
java在线聊天项目 swt可视化窗口Design 登录框注册按钮点击改变窗口大小——出现注册面板 实现打开登录框时屏幕居中
登录框注册按钮点击改变窗口大小——出现注册面板 首先用swt可视化设计登录窗口如下图:此时窗口高度为578没点击注册时高度为301(可自己定)注意:注册用户的Jpanel 的border选择Title Border,title属性是“注册用户” 布局Layout选择Absolute Layout接着,对话框窗口设计好后,双击注册按钮,进行代码编辑,在注册按钮的监听代码中增原创 2018-01-01 00:43:30 · 397 阅读 · 0 评论 -
java在线聊天项目1.3版设计好友列表框功能补充,因只要用户登录就发送一串新列表,导致不同客户端好友列表不同问题
解决完毕后效果图: 好友列表Vector添加的时候进行判断,如果有相同的则不添加int flag=0; for (int i = 0; i if (name.equals(names.get(i))) { flag=1; } } if(flag==0) { names.add(name); }好友列表窗代码如下:原创 2018-01-01 00:44:24 · 1058 阅读 · 0 评论 -
java在线聊天项目1.3版 ——设计好友列表框功能
设计好友列表框功能,思路——1、当客户端成功登陆后,则客户端把成功登陆信息发送给服务端,2、由服务端将接收到来自各个成功登陆的客户端的用户信息添加进好友列表,3、每当有成功登陆的用户就向各个客户端发送完整好友列表4、好友列表窗要一直死循环着等待接收服务端不断发来的好友列表信息注意:登陆窗退出时不要关闭socket 聊天窗退出时不要关闭socket 重新整合服务原创 2018-01-01 00:44:14 · 765 阅读 · 0 评论 -
java在线聊天项目1.2版 ——开启多个客户端,分别实现数据库注册和登录功能后,成功登陆则登录框消失,好友列表窗出现
登录框消失语句dispose();好友列表窗出现使用new FriendsFrame(phone,s);登陆对话框代码修改如下:package com.swift.frame;import java.awt.EventQueue;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;imp原创 2018-01-01 00:44:11 · 382 阅读 · 0 评论 -
java在线聊天项目1.1版 ——开启多个客户端,分别实现注册和登录功能,使用客户端与服务端信息request机制,重构线程,将单独的登录和注册线程合并
实现效果图: eclipse项目中初步整合之前的各个客户端和服务端的窗口与工具类,效果如下图:已将注册服务器线程RegServer功能放到LoginServer中,使用客户端与服务端的request请求机制,根据请求是注册还是登录,分别进行相应response,客户端根据相应内容判断下一步操作。发送信息的模式还较为原始,没有使用json方法,但gson包已经导入,支持发送键值对的字符串原创 2018-01-01 00:43:58 · 322 阅读 · 0 评论 -
java在线聊天项目 客户端登陆窗口LoginDialog的注册用户功能 修改注册逻辑 增空用户名密码的反馈 增加showMessageDialog()提示框
LoginDialog类的代码修改如下:package com.swift.frame;import java.awt.EventQueue;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.aw原创 2018-01-01 00:43:53 · 271 阅读 · 0 评论 -
java在线聊天项目 swt可视化窗口Design 重新设计好友列表窗口 增加菜单栏
增加的菜单栏效果图如下:eclipse 中调整到 swt的design视图下控件区域选择Menu Controls将Menu Bar拖动到窗口标题栏将Cascaded Menu拖动到Menu Bar依次将多个Menu Item加入到New SubMenuSeparator是分隔符也可以再放入Cascaded Menu级联菜单 好友列表窗口的代码如下:package com原创 2018-01-01 00:43:50 · 537 阅读 · 0 评论 -
java在线聊天项目 客户端登陆窗口LoginDialog的注册用户功能
点击下图注册按钮,出现注册用户面板,把手机号和判断相同的密码添加到MySQL数据库中工作原理:与单机的软件不同,这个聊天的登录框不能把注册信息直接添加进数据库而是应当把注册信息发送到服务器当服务器接收到注册信息后,在服务端把注册信息添加进数据库 首先,做连接数据库的准备连接数据库需要一个连接数据库的驱动包 —— mysql-connector-java-5.1.7-bin.jar原创 2018-01-01 00:43:48 · 562 阅读 · 0 评论 -
java在线聊天项目 swt可视化窗口Design 重新设计聊天窗口
设计的聊天窗口如下:制作过程:首先,在默认的BorderLayout视图下,上边也就是North处添加一个JPanel,将Layout调整为BorderLayout,West放一个JLabel用来放照片,Center再放一个JPanel,布局调整为BorderLayout,Center和South各方一个JLabel,分别放用户昵称和名言。下边模仿QQ是一个上下可以自行拆分大小的JSp原创 2018-01-01 00:43:35 · 878 阅读 · 0 评论 -
java在线聊天项目 swt可视化窗口Design 好友列表窗口
熟练使用各种布局方式FlowLayout 流布局 left center right等BorderLayout 边框布局 east west sorth north centerAbsoluteLayout 绝对布局或空布局 任意拖拽可以使用各种布局的嵌套效果,达到需要的目标布局后可以在基本布局基础上添加新的JPanel,然后设置JPanel新的布局方式 制作好友列表窗口首先,设原创 2018-01-01 00:43:33 · 1017 阅读 · 0 评论 -
java在线聊天项目0.1版本 制作客户端窗体,使用swing(用户界面开发工具包)和awt(抽象窗口工具包)
建立Chat项目,并在项目中创建窗口类package com.swift;import java.awt.BorderLayout;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;public原创 2018-01-01 00:42:39 · 281 阅读 · 0 评论