- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《Java之聊天室制作》总结报告姓 名 __赵其国___________________学 号 __201135052106_____________班 级 __嵌入式一班__ _____________ 二〇一二年十二月二十日设计目的为了更好的巩固输入输出流,窗体设计,多线程运用,网络通信设计方面的知识。把所学的课程及相关知识加以融会贯通。设计内容设计的聊天室能实现用户登录,显示登录用户列表,以及发送聊天信息和显示聊天信息的功能。并可以选择接收信息的用户进行单发或群发的功能,运行程序,登录服务器后,可以从列表中选择单个或多个用户进行聊天,它是图形界面,线程,流与文件系统等技术的综合应用。概要设计实现的功能:启动服务器端,接收客户端发来的信息,并在服务器端窗体显示客户端聊天信息,再吧信息返给在线用户,窗体背景色为粉色启动客户端窗体 ,窗体背景色为粉色用户名编辑框输入用户名,设置字体显红色,单击登录按钮,在显示在线用户列表内显示用户名,同时用户名编辑框不能编辑发送编辑框输入发送内容,单击发送按钮,启动输出流,把信息发送出去,同时把发出的信息追加到聊天内容文本域内,显示用户名,时间和发送内容。单击退出按钮,运用File类和JfileChooser类实现聊天信息的保存聊天信息文本域,在线用户显示域和发送信息的文本域加了滚动条,其中聊天信息文本域,发送信息的文本域的文字能自动换行。别的客户端发来信息是通过输入流读取信息,并截取发来信息的用户名及信息,用户名加到在线用户列表上显示在线,信息追加到聊天内容文本域内,显示用户名,时间和发送内容。功能不足之处:保存聊天信息保存为text格式的有黑块。保存为Doc格式的要转码不能直接打开用户在线显示,只能在用户发送信息时别的用户才能得到在线的用户名,然后再加到在线用户列表中,显示用户在线。聊天室只适合群聊,没有实现技能群聊又能和单个人聊天的功能用户输出“退出”后在线用户列表中就会把用户删除,不过没有实现没找到错误出在哪里。演示截图客户端1用户界面(可在同一个类中打开多个窗体):客户端2用户界面:服务器端用户界面:用doc格式保存的聊天信息(打开时转码为简体中文格式):设计源代码(导入的代码省略):客户端1代码(客户端2,3..代码同下)@SuppressWarnings(all)public class Client1 extends JFrame {private JLabel username, input;private JButton denglu, exit, send;private JTextArea name, msg, say; private JTextField jt1;private JSplitPane split;boolean loginFlag = false;private Socket socket;private OutputStream op;private JList user_list;//列表private DefaultComboBoxModel model;//组件模型public Client1() {super();setTitle(聊天室);username = new JLabel(用户名:);input = new JLabel(输入聊天内容:);denglu = new JButton(登陆);exit = new JButton(退出);send = new JButton(发送);msg = new JTextArea(10, 25);msg.setEnabled(false);// 文本条不可编辑Font fnt1 = new Font(Serief, Font.PLAIN, 20);//根据名称、样式和磅值大小设置字体msg.setFont(fnt1);msg.setLineWrap(true);// 自动换行jt1 = new JTextField(15);jt1.setForeground(Color.red);say = new JTextArea(2, 15);say.setLineWrap(true);name = new JTextArea(10, 5);name.setEnabled(false);user_list = new JList();user_list.setModel(new DefaultComboBoxModel(new String[] { }));model = (DefaultComboBoxModel) user_list.getModel();// 获得列表框的模型}public void clientThread() {try {socket = new Socket(
文档评论(0)