java编写的socket聊天程序

上传人:pu****.1 文档编号:508638410 上传时间:2023-09-08 格式:DOCX 页数:13 大小:22.44KB
返回 下载 相关 举报
java编写的socket聊天程序_第1页
第1页 / 共13页
java编写的socket聊天程序_第2页
第2页 / 共13页
java编写的socket聊天程序_第3页
第3页 / 共13页
java编写的socket聊天程序_第4页
第4页 / 共13页
java编写的socket聊天程序_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《java编写的socket聊天程序》由会员分享,可在线阅读,更多相关《java编写的socket聊天程序(13页珍藏版)》请在金锄头文库上搜索。

1、package MvChatRoom;unport java.awt.*;unport java.awt.event.*;unport javax.swing.*;.*;unport java.io.*;未解决:登录注册模块。聊天记录模块以及显示在线好友,有选择性的聊天模块public class MvChatRoompublic static void niain(Striiig Args )filogFrame log=new logFrame();聊天模块class MyFrame extends JFrame implements ActionListenerpublic MyFiai

2、ne(mt a,Suing ip)fi获取传来的参数ipA=ip;selectNum=a;基本设置 setTitle(HSun 聊天小工具”); setSize(WIDTH.HEIGHT);setDefaultCloseOperation(JFiame.EXIT_ON_CLOSE);创建3个面板,一个放文本框,一个放按钮,一个放图片JPaiiel textpanel = new JPanelQ;JPaiiel buttoiiPaiiel=new JPanel();JPaiiel picPanel=new JPanelQ;Container contentPane = getContentPan

3、eQ;GndBagConstiamts cc=new GridBagConstiaintsQ;GndBagLavout ca=new GndBagLayout(); contentPane.setLayout(ca);cc.fill=GridBagConstiaints.BOTH;初始化一个容器cc.gridwidth=l;cc.giidheight=2; contentPane.add(picPanel);c a setC onstiaiiits(picPanel,cc);cc.weightv=O.O;cc.giidwidth=GridBagConstiaints.REMAINDER;cc.

4、gndheight=l;cc.weighty=1.0; contentPane.add(textpanel); c a setC onstiamts(textpaneLcc); contentPane.add(buttoiiPanel); ca.setConstiamts(buttoiiPaiiel.cc);网格式布局GndBagConstiamts c=new GndBagConstramts(); GndBagLavout gndbag=new GndBagLayoutQ; textpanel.setLayout(gridbag);c.fill=GndBagConstiamts.BOTH;

5、初始化组件发送按钮 btSet=new JButton(H 发送”); buttoiiPanel.add(btSet); btSet.addActionListener(this);取消按钮 btCancel=new JButton(M 取消”); buttoiiPanel.add(btCancel); btCancel.addActioiiListener(tlus);清空按钮btCleai-new JButton(H 清屏”); buttoiiPanel.add(btClear); btClear.addActionListener(this);显示消息框c.weightx=1.0;c.w

6、eighty=1.0;c.gridwidth=GndBagConstramts.REMADJDER: getBox=new JTextAiea(15?30); getBox.setEditable(false);mvScro=new JScrollPaiie(getBox); textpanel.add(myScro); gndbag.setConstraints(myScro,c);设置文本框显示数据往下翻页getBox.setCaretPosition(getBox.getText().length();标签项c.weightx=1.0; c.gridwidth=GndBagConstra

7、mts.RELAri7E; label l=new JLabel(n 输入”); label4=new JLabel(H 聊天内容 J;c.gndwidth=GndBagConstramts.REMAINDER: gridbag.setConstraints(label4,c); textpanel.add(labell);textpanel.add(label4);发送消息框setBox=new JTextArea(7930);mvScro2=new JScrollPaiie(setBox); textpanel.add(myScio2);gndbag.setConstraints(mySc

8、ro2,c);/菜单项/主菜单JMenuBar menuBar = new JMenuBarQ; setJMenuBar(menuBai);gyMenu =new JNIenu(M 关于(G)H); bzMenu =new JMenu(M 帮助(H)H); editMenu =new JMenu(n 编辑(E)”); szMenu =new JMenu(H 设置(S)H); menuBai.add(editMenu); menuBai.add(gyMenu); menuBai.add(bzMenu); menuBai.add(szMenu);/子菜单aa =nexv JMenuItem(H 版

9、权 J;zzxx =nexv JMenuItem(H 作 者信息”);gyMenu.add(aa);gyMenu.add(zzxx);aa. addAc tioiiListener(tliis);zzxx.addActionListener(this);cop=new JNIenuItem(复制”); cut =new JMenuItemC* 剪切”); pas =new JMenuItem( ”粘贴”); editMenu.add(cop); editMenu.add(cut);editMenu.add(pas);cop.addActioiiListener(tliis); cut.addA

10、ctionListener(this); pas .addActioiiListener(tliis); syzii=new JMenuItem(H 使用指南”); bzMenu.add(syzn);syzii.addActioiiListener(tliis);pifii=new JMenuItem(H 字体颜色”); beijiiig=new JMenuItem(M 背景色”); szMenu.add(pifii);szMenu.add(beij mg);pifxi.addActioiiListener(tlus); beijmg.ad(iA.ctionListenei(this);匿名内

11、部类实现监听setBox.addKevListenei(new KevAdapterQpublic void keyPiessed(KeyEvent e)当按回车时发送所输入的信息 if(e.getKeyCode()=KeyEvent.VK_ENTER) sendStriiig=setBox.getTextQ;out.piintlii(send String); getBox.setCaretPosition(getBox.getText().length(); getBox.append(HI Said: M+sendStiing+MrnH); setBox. setText(H H);当按

12、CM1+回车时换行/* if(e.getModifiers()=KeyEvent.VK_CONTROL& e.getKeyCode()=KeyEvent.VK_ENTER)setBox.append(ninM);*/);migLabell =new JLabel(new IniageIcon(H./MyChatRoonVbb.jpgM); picPaiiel.add(uugLabell);imgLabel2=new JLabel(new InwgeIcon(,/MyChatRooni/aa.jpgH); picPaiiel.add(uugLabel2);picPaiiel.setLavout(

13、new GiidLavout(2J);显不窗【IsetVisible(tme);选择作为客户端还是服务器端switch(selectNum)case 0:seiverRoleQ;break;case 1:clientRole();break;/启动线程处理输入流 tluead=newMyTluead(coimectSocket.getBox); tluead.setPriority(Thiead.MIN_PRIORITY);thread, start。;包装输出流tryBufferedWriter(newout=newPrmtWritei(newOutputStreamWiiter(coime

14、ctSocket.getOutputStieam()jiiie);catch(IOException e)e .printStackTiaceQ;filial mt WIDTH=55O;filial mt HEIGHT=600;JLabel labell Jabel4,uugLabelljmgLabel2;JButton btSet.btCanceLbtClear;JTextArea setBox.getBox;JMenu gvMenu.bzMenu.editMenuszMenu;JMenuItem aa,cop,cut,pas,zzxx,syziKpifiLbeijmg;JScrollPan

15、e mySci ojnv Sci o2;String sendStrmg;MyTluead tluead=null;SeiverSocket seiverSocket;Socket coimectSocket;String ipA;PrintWriter out; mt selectNum;作为服务器端的处理public void serv-eiRole()tiyseiveiSocket=new SeiveiSocket(5500); getBox-appendC正在等待对话请求n); coiinectSocket=senTeiSocket.acceptQ;getBox.setText(n 连接来自 n+coimectSocket.getInetAddiessQ.toStiiiig()+niin); catch(Exception e)getBox.append(对不起,由于某些原因,不能创建服务器1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号