资源简介
(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
相关资源
- 东华软件股笔试题2019java
- java简易连连看网络实时对战
- java课程设计-银行卡存取款管理系统
- Java语言程序设计与数据结构基础篇第
- 绩效考核系统
- Android移动终端开发大作业2019
- java期末大作业_五子棋小游戏单机版
- Java SSM框架三端在线教育平台
- 传智播客Javaweb视频课堂笔记源码全部
- Java POI 生成Excel(xlsx)文件
- mysql-connector-java-5.1.41-bin.jar62026
- java做的ATM机
- java防反编译jar
- bluecove-2.1.1.jar
- 气象云图数据解析代码之Java实现
- JAVA记事本61935
- java利用Socket与多线程实现网络聊天室
- 单功能非线性流水线的调度 java实现
- java swing 编写的简易计算器
- jpcap压缩包
- Java文件资源管理器代码
- java实习生实习报告
- 分页查询源码
-
JAVA Jfr
ame无边框可拖动Dome - SNMP管理站开发-java实现
- java微信小程序支付
- java成本预测决策支持系统基于SSM框架
- ssm+maven+swagger框架整合
- LoadBox.java
- java贪吃蛇源码联网
评论
共有 条评论