JAVA实训评测报告--聊天室

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《Java实训》设计报告

电子信息项目学院

专业:软件技术

班级:1班

实训:聊天室

系统总体设计

1、设计思路

聊天系统的设计跟普通网站设计有着许多不同的地方,普通网站设计所考虑的因素,例如,普通网站需要对布局进入大量美化以及动画设计等等,而聊天室只要提供满足访客双方直接实时聊天即可。因此,在设计聊天系统的过程中,必须要考虑好以下几个设计要点:

在Internet上的聊天程序一般都是以服务器提供服务端连接响应,使用者通过客户端程序登录到服务器,就可以与登录在同一服务器上的用户交谈,这是一个面向连接的通信过程。因此,程序要在TCP/IP环境下,实现服务器端和客户端两部分程序。

1.首先通过继承JFrame类构造服务器界面。

2.设计客户端程序使其能够完成正常的通信功能。

3.设计监听程序,使其显示登录的ip地址端口号,以及用户昵称,通过侦听按钮可以调用客户端程序,实现聊天功能。

2、各个模块详细的功能描述。

1、服务器端功能描述:

启动服务器端。

2、客户端功能描述:

启动客户端;

显示登录昵称:

显示聊天记录:

发送信息;

退出聊天室。

系统详细设计

1、界面设计

主要由类ChatRoom来实现,界面实际总体如下:输入昵称的文本框,输入IP地址的文本框以及输入端口的文本框;连接的按钮;退出按钮;接受消息的文本域;发送消息文本框;发送按钮。项目设计

在设计聊天室时,编写3个Java源文件:Client.java、Frame1.java、ServerThread.java;

分别放在两个包中,一个是client,放Client.java、Frame1.java;一个是server,放ServerThread.java;聊天室除了上述Java源文件所给出的类外,还需要Java系统提供的一些重要类,如JButton,JTextField等。

下面是Java源文件的总体设计。

Client<主类)客户端

Client类负责创建聊天室客户端的主窗口,该类含有main方法,计算器从该类开始执行。

ServerThread<主类)服务器

ServerThread类负责创建聊天室服务器的主窗口,该类含有main方法,计算器从该类开始执行。

二详细代码设计

聊天室程序设计详细代码如下:

客户端代码:

package client。

import javax.swing.UIManager。

publicclass Client {

public Client(>{

Frame1 frame=new Frame1(>。

frame.setVisible(true>。

frame.validate(>。

}

publicstaticvoid main(String[] args>{

try{

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName(>>。

}catch(Exception e>{

e.printStackTrace(>。

}

new Client(>。

}

}

package client。

import java.awt.*。

import java.awt.event.*。

import javax.swing.*。

import .*。

import java.io.*。

public class Frame1 extends JFrame implements Runnable{

private JPanel contentPane。

private TextArea textArea1=new TextArea(>。

private Label label1=new Label(>。

private JTextField textField1=new JTextField(>。

private JButton button1=new JButton(>。

private JButton button2=new JButton(>。

private JButton button3=new JButton(>。

Socket socket=null。

BufferedReader in=null。

PrintWriter out=null。

JTextField server=new JTextField(>。

JLabel jLabel1=new JLabel(>。

JLabel jLabel2=new JLabel(>。

JTextField port=new JTextField(>。

JScrollPane jScrollPane1=new JScrollPane(>。

JList jList1=new JList(>。

JLabel jLabel3=new JLabel(>。

DefaultListModel l1=new DefaultListModel(>。

public Frame1(>{

try{

init(>。

}catch(Exception e>{

e.printStackTrace(>。

}

}

private void init(> throws Exception{

server.setText(InetAddress.getLocalHost(>.getHostAddress(>>。

server.setBounds(new Rectangle(69,252,74,22>>。

相关文档
最新文档