admin 管理员组

文章数量: 887031


2024年2月24日发(作者:css设置border宽度)

一.系统需求分析

网络聊天室通常直称聊天室;是一种人们可以在线交谈的网络论坛;在同一聊天室的人们通过广播消息进行实时交谈..

在当今信息时代;越来越多的聊天工具被应用;java语言是当今流行的网络编程语言;它具有面向对象;与平台无关;安全;多线程等特点..使用java语言不仅可以实现大型企业级的分布式应用系统;还能够为小型的的;嵌入式设备进行应用程序的开发..面向对象的开发是当今世界最流行的开发方法;它不仅具有更贴近自然地语义;而且有利于软件的维护和继承;锻炼我们熟练地应用面向对象的思想和设计方法解决实际问题的能力..

本程序正是用java语言实现了简单聊天功能..它是图形界面;线程;流与文件系统等技术的综合应用..其界面主要采用了包;包等..

二.系统总体设计

1.对性能的规定

由于本软件知识一个聊天程序;程序只提供用户之间的聊天功能;故对网络传输数据要求不是很高;只要正常的传输速度就可以了..

2数据管理

IP地址IP;端口Port

3.开发环境

本软件采用Java语言编写;Java语言是一种跨平台的编程语言;所以本软件对操作系统没有特别的要求..而网络传输方面采用TCP/IP网络传输协议或者是RMI..

4.设计概要

1本软件客户端与用户共用一段程序..客户端编译运行后;在窗口选择----侦听..用户编译运行后;在窗口选择----连接..

2本软件实现的功能有

1允许服务器侦听客户端;客户端连接到服务器

2允许服务区与客户端之间进行聊天;

3允许服务器与客户端更改背景颜色;

4 允许服务器与客户端更改字体颜色;

5服务器与客户端时;会显示内容发送时间;

6允许服务器与客户端用鼠标点击“发送”;按ENTER键均可发送内容

7允许服务器与客户端用鼠标点击关闭时关闭聊天窗口

三.系统详细设计

1.代码功能描述

1程序中引入的包:

import .;

import .;

import .;

import java.;

import .;

2代码中自定义的类:

类名:chatHouse

继承的类:JFrame

实现的接口:ActionListener; Runnable

作用:构造服务器界面以及客户端界面..

定义的对象: TextArea ta;

JTextField ip;

JTextField port;

JButton btn_server;

JButton btn_client;

JButton btn_backGroundCol;

JButton btn_fontCol;

JTextField send_text;

JButton btn_send;

JButton btn_close;

JLabel pic;

Socket skt;

构造方法:public chatHouse

主要成员方法:public void run

public void actionPerformedActionEvent e

public void doServer

public void doSend

2.源代码

import .;

import .;

import .;

import java.;

import .;

import .;

public class chatHouse extends JFrame implements ActionListener;

Runnable

{

private TextArea ta;

private JTextField ip;

private JTextField port;

private JButton btn_server;

private JButton btn_client;

private JButton btn_backGroundCol;

private JButton btn_fontCol;

private JTextField send_text;

private JButton btn_send;

private JButton btn_close;

private JLabel pic;

private Socket skt;

public void run

{

try{

BufferedReader br = new BufferedReadernew

utStream;

whiletrue{

String s = ne; // 从网络读

ifs==null break;

s + "n";

}

}

catchException e{

tackTrace;

}

}

public void actionPerformedActionEvent e

{

rce==btn_server{

doServer;

}

rce==btn_client{

doClient;

}

rce==btn_send{

doSend;

}

}

public void doServer

{

try{

ServerSocket server = new

t;

skt = ;

"连接成功n";

new ;

}

catchException e{

"服务器启动失败n";

}

}

public void doClient

{

try{

skt = new t; t;

"连接成功n";

new ;

}

catchException e{

"连接失败n";

}

}

public void doSend

{

Calendar c=tance;

int y=;

int M=+1;

int d=_OF_MONTH;

int h=_OF_DAY;

int mm=;

int ss=;

try{

PrintWriter pw = new putStream;

String s = send_t;

ifs==null return;

y+"-"+M+"-"+d+" "+h+":"+mm+":"+ss+"n";

s+"n";

ny+"-"+M+"-"+d+" "+h+":"+mm+":"+ss;

ns;

;

send_t"";

}

catchException e{

"发送失败n";

}

}

public chatHouse

{

super"聊天室";

nds100;100;550;430;

Container cc = tentPane;

JPanel p1 = new JPanel;

1; ;

JPanel p2 = new JPanel;

2;;

JPanel p3 = new JPanel;

3;;

pic=new JLabelnew ImageIcon"";

;;

JLabel"IP: ";

ip = new JTextField"127.0.0.1"; 10;

;

JLabel"Port: ";

port = new JTextField"7777"; 4;

t;

btn_server = new JButton"侦听";

_server;

btn_client = new JButton"连接";

_client;

btn_backGroundCol =new JButton"背景色";

_backGroundCol;

btn_fontCol =new JButton"字体颜色";

_fontCol;

outnew BorderLayout

ta = new TextArea;

; ;

send_text = new JTextField"Hello.";

d_text; ;

btn_send = new JButton"发送";

_send; ;

btn_close =new JButton"关闭";

_close; ;

//---------------------------------------"关闭"按钮监听器

btn_ionListenernew ActionListener{

public void actionPerformedActionEvent e{

100;

}

};

//--------------------------------------- 背景变色监听

btn_ionListenernew ActionListener{

public void actionPerformedActionEvent e{

JColorChooser chooser4=new JColorChooser;

Color color=alognull;"背景颜";;

kgroundcolor;

}

};

//---------------------------------------字体变色监听

btn_ionListenernew ActionListener{

public void actionPerformedActionEvent e{

JColorChooser chooser4=new JColorChooser;

Color color=alognull;"字体颜色";;

send_egroundcolor;

egroundcolor;

}

};

//---------------------------------------按ENTER键可发送监听

btn_ionListenerthis;

btn_ionListenerthis;

btn_ionListenerthis;

}

_ON_CLOSE;

send_Listenernew KeyAdapter{

public void keyPressedKeyEvent e{

Code==_ENTER

doSend;

}

};

}

public static void mainString args

{

new ibletrue;

}

import .;

3.程序测试

编译运行程序后;先选择对方IP;选择同样的Port..服务器先侦听;客户端再连接..连接成功;窗口会显示“连接成功”字样..接下来就可以聊天了..

1 服务器与客户端聊天..

2服务器与客户端聊天..服务器将背景颜色设为粉红;字体颜色设为蓝色..

客户端将背景颜色设为蓝色;字体颜色设为红色..

四.小结

1.通过本次课程设计;使得自己懂得理论和实践相结合起来;从理论中得出结论;才能真正掌握这门技术;也提高了自己独立思考的能力;在设计的过程中;可以自己解决..真正体会到要将一门知识学的更深入;必须加强实践;多练习;才能发现问题所在..

2..本程序实现的功能还比较简单不够完善;从中;我知道了自己的不足之处;决心增长自己的知识;设计更加好的程序;实现各种更加复杂的功能;如:传输文件;图片..以及登陆界面;昵称等..

3.总的来说;这次实训对我很有帮助..让我学会了的不只是设计JAVA聊天室;更让我学会主动学习;而不是被动接收..这样才能更好的运用自己所学到的知识..

另:附该代码所用到的图片


本文标签: 客户端 服务器 程序