资源简介
(1)用Java图形用户界面编写聊天室服务器端和客户端, 支持多个客户端连接到一个服务器。每个客户端能够输入账号。
(2)可以实现群聊(聊天记录显示在所有客户端界面)。
(3)完成好友列表在各个客户端上显示。
(4)可以实现私人聊天,用户可以选择某个其他用户,单独发送信息。
(5)服务器能够群发系统消息,能够强行让某些用户下线。
(6)客户端的上线下线要求能够在其他客户端上面实时刷新。

代码片段和文件信息
package 聊天室;
import java.net.*;
import java.util.ArrayList;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.DefaultCaret;
public class Client extends Jframe implements RunnableActionListenerItemListener{
private JTextArea jta = new JTextArea();
private JTextField jtf = new JTextField();
private JButton jb=new JButton(“发送消息“);
private List online = new List();
private String nickName;
private Socket s = null;
private PrintStream ps = null;
private BufferedReader br = null;
private JScrollPane jsp=new JScrollPane(jta);
private String msg =new String();
private ArrayList siliaoname=new ArrayList();
private String msg2 = new String();
private String ip;
private int port;
private SocketAddress addr;
public void itemStateChanged(ItemEvent e) {
if(e.getSource()==online)
{
}
}
public Client() throws Exception{
jsp.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
online.addItemListener(this);
online.addActionListener(this);
getContentPane().add(jsp BorderLayout.CENTER);
getContentPane().add(jtfBorderLayout.SOUTH);
getContentPane().add(onlineBorderLayout.EAST);
jtf.setBackground(Color.WHITE);
jta.setWrapstyleWord(true);
jta.setFont(new Font(“微软雅黑“Font.BOLD25));
jtf.setFont(new Font(“微软雅黑“Font.BOLD25));
jtf.addActionListener(this);
jta.setEditable(false);
jta.setLineWrap(true);
jb.setBounds(490 0 100 38);
jtf.add(jb);
jb.setVisible(true);
jb.addActionListener(this);
DefaultCaret caret = (DefaultCaret)jta.getCaret();//跟着进度条移动
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
this.setSize(600600);
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
int option= JOptionPane.showConfirmDialog(
Client.this “确定退出聊天室? “ “提示 “JOptionPane.YES_NO_OPTION);
if(option==JOptionPane.YES_OPTION)
if(e.getWindow() == Client.this)
{try {
ps.println(“EXIT#“+ nickName);
System.exit(0);
}catch(Exception exit) {}
}
return ;
}
});
this.setVisible(true);
this.setLocationRelativeTo(null);
ip=“127.0.0.1“;
port=9999;
try {
nickName = JOptionPane.showInputDialog(Client.this“请输入您的账号“);
while(nickName.equals(““)) {
JOptionPane.showMessageDialog(
Client.this “账号不能为空 “ “错误 “JOptionPane.YES_NO_OPTION);
nickName = JOptionPane.showInputDialog(Client.this“请输入您的账号“);
}
}catch(Exception e) {
System.exit(0);
}
try {
s = new Socket();
addr=new InetSocketAddress(ipport);
s.connect(addr1000);
}catch(Exception e) {
JOptionPane.showMessageDialog(
Client.this “服务器暂未开放 “ “提示 “JOptionPane.YES_NO_OPTION);
System.exit(0);
}
ps = new PrintStream(s.g
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4503 2019-05-25 09:58 Server.java
文件 7782 2019-05-25 09:58 Client.java
- 上一篇:java简易连连看网络实时对战
- 下一篇:东华软件股笔试题2019java
相关资源
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
- [免费]java实现有障碍物的贪吃蛇游戏
- java Servlet投票实例
评论
共有 条评论