java课程设计聊天程序_java课程设计_局域网聊天程序.doc

java课程设计_局域网聊天程序.doc

407afa96c66731fd128298c4e02b087e.gif

还剩

15页未读,

继续阅读

下载文档到电脑,马上远离加班熬夜!

亲,很抱歉,此页已超出免费预览范围啦!

如果喜欢就下载吧,价低环保!

内容要点:

面向对象课程设计报告 第 16 页,共 16 页书本上没有的知识;学到了很多 java 编程知识,并学会了简单的使用 NetBeans 来开发 java程序的一些使用技巧,这次课程设计是对我本学期所学的知识的检验,由此我发现了不少的问题。可以说它给了我一次自我评估的机会。通过设计让我知道了那些方面我还是有欠缺的,促使我花时间弥补。水平所限,致使程序实现的功能在方法上也许不是很完美,但我以后会多向老师请教,自己也要加强对 Java 的学习。努力进一步提高自己的编程水平。面向对象课程设计报告 第 15 页,共 16 页5.课程设计心得我自己感觉此次课程设计做得挺成功的,通过这一次,我学到了不少实际编程的知识。在这次设计开始的第一天开始,我就开始着手修改一个书上的基于客户-服务器端的计算三角形面积的 java 程序,这个程序的大框架给了我很大的启发。我刚开始很自信自己能顺顺利利编写成功,但这一过程太不顺利。用了两天时间来研究改写那个程序,但总是发现和我要实现的局域网聊天功能相差甚远。后来我抛弃了那个例子,全部重写,磕磕绊绊的不断发现错误,并改正它们,功夫不负有心人人,我的程序最后运行成功了。在这课程设计期间我的同学帮助了我,有些东西是我们一起探讨,一起解决方法的。当然在学习 Java 和设计程序的过程中还得到了指导老师的辛勤指导,为我解答了不少的疑问。同时,在施老师和黄老师身上我学到了很多实用的东西,在此表示衷心的感谢!同时,还要感谢帮助过我的同学!这次课程设计令我感受很多。从拿到题目到研究例题;然后请教同学慢慢研究琢磨NetBeans;从理论到实践;从失败到成功;忘不了我坐在电脑前苦苦思索,和蚊子一起熬夜编程的疲惫;忘不了,盯着烈日往返于机房情景;忘不了……这其中了不少的东西,磨砺了我的意志;同时还巩固了以前所学的知识,学到了不少面向对象课程设计报告 第 14 页,共 16 页测试用户:Jarry连接成功后的聊天界面,公共聊天区显示发给所有人的信息,我的频道显示发给指定人的信息。界面为红色,颜色为蓝色,字体为楷体,聊天对象为 Tom。 面向对象课程设计报告 第 13 页,共 16 页return;}}}(2).用户使用说明 :在昵称里输入想要使用的名字,在主机地址写入运行服务器端程序的电脑的 ip 地址,默认为 localhost,代表本机,在端口号中输入和服务器端程序约定好的端口号,默认为4331,如果不一致会导致运行失败,最后选择性别后点击“连接”按钮连接服务器,弹出聊天界面。进入聊天界面后在公共聊天区会自动显示“欢迎 xx”信息。在用户列表会显示在线的用户,点击某个用户的名字后聊天对象自动变成被电击的用户,默认是所有人。万一用户列表显示不正确,点击刷新按钮可以从服务器重新获取用户列表。个性化设置(仅本地有效):四种主题,字体和颜色自定义,自动换行,发送快捷键。有用户退出会在公共聊天区显示系统信息提示并自动刷新用户列表。(3).测试结果 :运行程序首先出现的登陆界面。面向对象课程设计报告 第 12 页,共 16 页&"+this.name+" 退出了聊天室");ChatServer.deleteConnection(s,this);return;}else if (line.equals("refurbish")){ //处理刷新用户列表请求this.updateList();}else if (line.startsWith("withWho")){if(inmsg[2].equals("所有人"))Chat

发表评论

暂无评论,赶快抢占沙发吧。

java 大一课程设计 qq聊天程序socket=new Socket(); textPanel.send.setEnabled(false); thread=new Thread(this); setVisible(true); validate(); } public void actionPerformed(ActionEvent e) { if(e.getSource()==save) { savefile.setVisible(true); if(savefile.getFile()!=null) { try{ File file=new File(savefile.getDirectory(),savefile.getFile()); FileWriter tofile=new FileWriter(file); BufferedWriter out=new BufferedWriter(tofile); out.write(textPanel.getWholeText(), 0, textPanel.getWholeText().length()); out.close(); tofile.close(); } catch(IOException e2){} } } else if(e.getSource()==doodle) { thePaint.setVisible(true); } else if(e.getSource()==Disconnect) { if(socket.isConnected()) { try{ ps.writeUTF("QUIT:"); ps.flush(); socket.close();}catch(IOException ee){System.out.println("无法关闭");} } setTitle("用户"+name+"离线"); textPanel.send.setEnabled(false); nameList.removeAll(); nameLable.setText("在线用户: "+"人数: "+(nameList.getItemCount())); } else if(e.getSource()==connect) { try//请求和服务器建立套接字连接 { if(socket.isConnected()){} else { InetAddress address=InetAddress.getLocalHost(); InetSocketAddress socketAddress=new InetSocketAddress(address,8080); socket.connect(socketAddress); reader=new DataInputStream(socket.getInputStream()); ps=new DataOutputStream(socket.getOutputStream()); out=new ObjectOutputStream(socket.getOutputStream()); in=new ObjectInputStream(socket.getInputStream()); ps.writeUTF(name);//开始即传输用户名 ps.flush(); setTitle("用户"+name+"在线"); thread.start(); } }catch(IOException ee){} } else if(e.getSource()==groupChat) { groupMode=true; condition.setText("群 聊\n"); textPanel.send.setEnabled(true); } else if(e.getSource()==privateChat) { groupMode=false; condition.setText("私 聊\n"); textPanel.send.setEnabled(true); } else if(e.getSource()==nameList) { if(!groupMode) { indexName=nameList.getSelectedItem(); condition.setText("私 聊\n与"+nameList.getSelectedItem()+"聊天中\n"); } } else if(e.getSource()==textPanel.send) { if(e.getSource()==textPanel.send) { textPanel.text=textPanel.in.getText(); Font f=textPanel.in.getFont(); textPanel.out.setFont(f); Color c=textPanel.in.getForeground(); textPanel.out.setForeground(c); textPanel.in.setText(""); if(!groupMode) { textPanel.out.append("\n"+"我说:"+textPanel.text+"\n"); } else { textPanel.out.append("\n"); } System.out.println("文本输出~~"); String text=textPanel.text; if(groupMode) { StringBuffer msg=new StringBuffer("MSG:"); msg.append(text); String s=msg.toString(); try{ ps.writeUTF(s); ps.flush();}catch(IOException ee){System.out.println("输出文本错误");} System.out.println("成功输出"); } else { StringBuffer msg=new StringBuffer("MSGTOONE:"); msg.append(indexName+":"+text); String s=msg.toString(); try{ ps.writeUTF(s); ps.flush();}catch(IOException ee){System.out.println("输出文本错误");} System.out.println("成功输出"); } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值