JAVA实训评测报告聊天室.docx

上传人:b****5 文档编号:3234103 上传时间:2022-11-20 格式:DOCX 页数:16 大小:54.59KB
下载 相关 举报
JAVA实训评测报告聊天室.docx_第1页
第1页 / 共16页
JAVA实训评测报告聊天室.docx_第2页
第2页 / 共16页
JAVA实训评测报告聊天室.docx_第3页
第3页 / 共16页
JAVA实训评测报告聊天室.docx_第4页
第4页 / 共16页
JAVA实训评测报告聊天室.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

JAVA实训评测报告聊天室.docx

《JAVA实训评测报告聊天室.docx》由会员分享,可在线阅读,更多相关《JAVA实训评测报告聊天室.docx(16页珍藏版)》请在冰豆网上搜索。

JAVA实训评测报告聊天室.docx

JAVA实训评测报告聊天室

《Java实训》设计报告

电子信息项目学院

专业:

软件技术

班级:

1班

实训:

聊天室

项目简介

项目名称

聊天室

项目功能

运用java程序编写聊天室,实现简单的聊天功能。

它是图形界面,线程,流与文件系统等技术的综合应用。

其界面主要采用了java.awt包,java.swing包以及java.util包等。

程序实现了聊天室的基本功能,其中有:

1、启动服务器。

2、进入客户端界面。

3、登录聊天室。

4、发送信息<实现按回车键发送消息)。

5、关闭服务器

项目目的

1.能在程序中熟练应用Java多线程技术

2.熟悉JavaC/S程序的结构和工作原理

3.能开发客户端应用程序

4.会编写服务器端多线程应用程序。

5.熟悉Java数据库连接方法,

能在程序中读写数据库

主要技术

Java编程语言、javaSwing组件

开发环境

jdk1.6.0_10

使用组件构建的C/S应用程序

各项功能的组织合理搭配应用

图标控制功能实现

构建基于C/S架构的应用程序

Swing组件应用

事件监听的应用

方法的编写

Swing组件的应用

事件监听器的使用

异常处理

方法简便的选择

系统总体设计

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方法,计算器从该类开始执行。

二详细代码设计

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

客户端代码:

packageclient。

importjavax.swing.UIManager。

publicclassClient{

publicClient(>{

Frame1frame=newFrame1(>。

frame.setVisible(true>。

frame.validate(>。

}

publicstaticvoidmain(String[]args>{

try{

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName(>>。

}catch(Exceptione>{

e.printStackTrace(>。

}

newClient(>。

}

}

packageclient。

importjava.awt.*。

importjava.awt.event.*。

importjavax.swing.*。

import.*。

importjava.io.*。

publicclassFrame1extendsJFrameimplementsRunnable{

privateJPanelcontentPane。

privateTextAreatextArea1=newTextArea(>。

privateLabellabel1=newLabel(>。

privateJTextFieldtextField1=newJTextField(>。

privateJButtonbutton1=newJButton(>。

privateJButtonbutton2=newJButton(>。

privateJButtonbutton3=newJButton(>。

Socketsocket=null。

BufferedReaderin=null。

PrintWriterout=null。

JTextFieldserver=newJTextField(>。

JLabeljLabel1=newJLabel(>。

JLabeljLabel2=newJLabel(>。

JTextFieldport=newJTextField(>。

JScrollPanejScrollPane1=newJScrollPane(>。

JListjList1=newJList(>。

JLabeljLabel3=newJLabel(>。

DefaultListModell1=newDefaultListModel(>。

publicFrame1(>{

try{

init(>。

}catch(Exceptione>{

e.printStackTrace(>。

}

}

privatevoidinit(>throwsException{

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

server.setBounds(newRectangle(69,252,74,22>>。

contentPane=(JPanel>this.getContentPane(>。

textArea1.setEditable(false>。

textArea1.setFont(newjava.awt.Font("Dialog",Font.PLAIN,14>>。

textArea1.setBounds(newRectangle(11,9,383,199>>。

textArea1.setBackground(newColor(66,00,233>>。

textArea1.setForeground(newColor(255,00,00>>。

contentPane.setLayout(null>。

this.setSize(newDimension(506,314>>。

this.setTitle("客户端">。

label1.setFont(newjava.awt.Font("Dialog",Font.PLAIN,12>>。

label1.setForeground(newColor(110,110,250>>。

label1.setText("消息:

">。

label1.setBounds(newRectangle(26,213,32,27>>。

button1.setActionCommand("发送">。

button1.setBounds(newRectangle(334,216,62,23>>。

button1.setEnabled(false>。

button1.setFont(newjava.awt.Font("Dialog",Font.PLAIN,12>>。

button1.setText("发送">。

button1.setForeground(newColor(110,110,250>>。

button1.addActionListener(newjava.awt.event.ActionListener(>{

publicvoidactionPerformed(ActionEvente>{

button1_actionPerformed(e>。

}

}>。

button2.setBounds(newRectangle(266,251,58,24>>。

button2.setFont(newjava.awt.Font("Dialog",Font.PLAIN,12>>。

button2.setText("连接">。

button2.setForeground(newColor(110,110,250>>。

button2.addActionListener(newjava.awt.event.ActionListener(>{

publicvoidactionPerformed(ActionEvente>{

button2_actionPerformed(e>。

}

}>。

button3.setBounds(newRectangle(333,251,62,22>>。

button3.setFont(newjava.awt.Font("Dialog",Font.PLAIN,12>>。

button3.setText("退出">。

button3.setForeground(newColor(110,110,250>>。

button3.addActionListener(newjava.awt.event.ActionListener(>{

publicvoidactionPerformed(ActionEvente>{

button3_actionPerformed(e>。

}

}>。

jLabel1.setFont(newjava.awt.Font("Dialog",Font.PLAIN,12>>。

jLabel1.setToolTipText("">。

jLabel1.setHorizontalAlignment(SwingConstants.RIGHT>。

jLabel1.setHorizontalTextPosition(SwingConstants.RIGHT>。

jLabel1.setText("服务器:

">。

jLabel1.setForeground(newColor(110,110,250>>。

jLab

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1