java聊天室软件课程设计
利用java实现基于C/S模式的聊天室程序。聊天室共分为服务器端和客户端两部分,服务器端主要负责侦听客户端发来的消息,客户端需登录到服务器端才可以实现正常的聊天功能。
聊天室服务器端代码(7个java文件)1.ChatServer.java
该类包含名为ChatServer的public类,定义了服务器端的界面,以及添加事件侦听与事件处理。
importjava.awt.*;
importjava.awt.event.*;importjavax.swing.*;
importjavax.swing.event.*;http://www.77cn.com.cn.*;importjava.io.*;
/*
*聊天服务端的主框架类*/
publicclassChatServerextendsJFrameimplementsActionListener{
publicstaticintport=8888;//服务端的侦听端口ServerSocketserverSocket;//服务端SocketImageicon;//程序图标
JComboBoxcombobox;//选择发送消息的接受者JTextAreamessageShow;//服务端的信息显示
JScrollPanemessageScrollPane;//信息显示的滚动条JTextFieldshowStatus;//显示用户连接状态JLabelsendToLabel,messageLabel;
JTextFieldsysMessage;//服务端消息的发送
JButtonsysMessageButton;//服务端消息的发送按钮UserLinkListuserLinkList;//用户链表
//建立菜单栏
JMenuBarjMenuBar=newJMenuBar();//建立菜单组
JMenuserviceMenu=newJMenu("服务(V)");//建立菜单项
JMenuItemportItem=newJMenuItem("端口设置(P)");JMenuItemstartItem=newJMenuItem("启动服务(S)");JMenuItemstopItem=newJMenuItem("停止服务(T)");JMenuItemexitItem=newJMenuItem("退出(X)");JMenuhelpMenu=newJMenu("帮助(H)");
JMenuItemhelpItem=newJMenuItem("帮助(H)");//建立工具栏
利用java实现基于C/S模式的聊天室程序。聊天室共分为服务器端和客户端两部分,服务器端主要负责侦听客户端发来的消息,客户端需登录到服务器端才可以实现正常的聊天功能。
JToolBartoolBar=newJToolBar();//建立工具栏中的按钮组件
JButtonportSet;//启动服务端侦听JButtonstartServer;//启动服务端侦听JButtonstopServer;//关闭服务端侦听JButtonexitButton;//退出按钮
//框架的大小
DimensionfaceSize=newDimension(400,600);ServerListenlistenThread;JPaneldownPanel;
GridBagLayoutgirdBag;
GridBagConstraintsgirdBagCon;
/**
*服务端构造函数*/
publicChatServer(){
init();//初始化程序
//添加框架的关闭事件处理
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.pack();
//设置框架的大小this.setSize(faceSize);
//设置运行时窗口的位置
DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();this.setLocation((int)(screenSize.width-faceSize.getWidth())/2,
(int)(screenSize.height-faceSize.getHeight())/2);
this.setResizable(false);
this.setTitle("聊天室服务端");//设置标题//程序图标
icon=getImage("icon.gif");
this.setIconImage(icon);//设置程序图标show();
//为服务菜单栏设置热键'V'
利用java实现基于C/S模式的聊天室程序。聊天室共分为服务器端和客户端两部分,服务器端主要负责侦听客户端发来的消息,客户端需登录到服务器端才可以实现正常的聊天功能。
serviceMenu.setMnemonic('V');
//为端口设置快捷键为ctrl+pportItem.setMnemonic('P');portItem.setAccelerator
(KeyEvent.VK_P,InputEvent.CTRL_MASK));//为启动服务快捷键为ctrl+sstartItem.setMnemonic('S');startItem.setAccelerator
(KeyEvent.VK_S,InputEvent.CTRL_MASK));//为端口设置快捷键为ctrl+TstopItem.setMnemonic('T');stopItem.setAccelerator
(KeyEvent.VK_T,InputEvent.CTRL_MASK));//为退出设置快捷键为ctrl+xexitItem.setMnemonic('X');exitItem.setAccelerator
(KeyEvent.VK_X,InputEvent.CTRL_MASK));
//为帮助菜单栏设置热键'H'helpMenu.setMnemonic('H');
//为帮助设置快捷键为ctrl+phelpItem.setMnemonic('H');helpItem.setAccelerator
(KeyEvent.VK_H,InputEvent.CTRL_MASK));
}
/**
*程序初始化函数*/
publicvoidinit(){
ContainercontentPane=getContentPane();contentPane.setLayout(newBorderLayout());//添加菜单栏
serviceMenu.add(portItem);serviceMenu.add(startItem);serviceMenu.add(stopItem);
(KeyStroke.getKeyStroke
(KeyStroke.getKeyStroke
(KeyStroke.getKeyStroke
(KeyStroke.getKeyStroke
(KeyStroke.getKeyStroke
利用java实现基于C/S模式的聊天室程序。聊天室共分为服务器端和客户端两部分,服务器端主要负责侦听客户端发来的消息,客户端需登录到服务器端才可以实现正常的聊天功能。
serviceMenu.add(exitItem);jMenuBar.add(serviceMenu);helpMenu.add(helpItem);jMenuBar.add(helpMenu);setJMenuBar(jMenuBar);
//初始化按钮
portSet=newJButton("端口设置");startServer=newJButton("启动服务");stopServer=newJButton("停止服务");exitButton=newJButton("退出");//将按钮添加到工具栏toolBar.add(portSet);
toolBar.addSeparator();//添加分隔栏toolBar.add(startServer);toolBar.add(stopServer);
toolBar.addSeparator();//添加分隔栏toolBar.add(exitButton);
contentPane.add(toolBar,BorderLayout.NORTH);//初始时,令停止服务按钮不可用stopServer.setEnabled(false);stopItem.setEnabled(false);//为菜单栏添加事件监听
portItem.addActionListener(this);startItem.addActionListener(this);stopItem.addActionListener(this);exitItem.addActionListener(this);helpItem.addActionListener(this);//添加按钮的事件侦听
portSet.addActionListener(this);startServer.addActionListener(this);stopServer.addActionListener(this);exitButton.addActionListener(this);combobox=newJComboBox();combobox.insertItemAt("所有人",0);combobox.setSelectedIndex(0);messageShow=newJTextArea();messageShow.setEditable(false);//添加滚动条
利用java实现基于C/S模式的聊天室程序。聊天室共分为服务器端和客户端两部分,服务器端主要负责侦听客户端发来的消息,客户端需登录到服务器端才可以实现正常的聊天功能。
messageScrollPane=newJScrollPane(messageShow,
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);messageScrollPane.setPreferredSize(newDimension(400,400));messageScrollPane.revalidate();showStatus=newJTextField(35);showStatus.setEditable(false);sysMessage=newJTextField(24);sysMessage.setEnabled(false);
sysMessageButton=newJButton();sysMessageButton.setText("发送");//添加系统消息的事件侦听
sysMessage.addA …… 此处隐藏:13145字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [幼儿教育]【完整版】2019-2025年中国药物发现外
- [幼儿教育]2018-2019年初中信息技术广东初一竞赛
- [幼儿教育]最新外研版(一起)小学英语五年级上册《
- [幼儿教育]农业推广与创新管理专业 -中农大毕业论
- [幼儿教育]2017-2022年中国更年期用药行业市场深
- [幼儿教育]数学1.1.2第1课时棱柱、棱锥和棱台的结
- [幼儿教育]二年级群文阅读课例欣赏
- [幼儿教育]2010-2015年中国保险行业投资分析及深
- [幼儿教育]厄运打不垮的信念第一课时
- [幼儿教育]巧用文本,让表达在言语中绽放论文
- [幼儿教育]中学生百科知识竞赛题及答案
- [幼儿教育]八大菜系英文简介
- [幼儿教育]中国男装牛仔裤市场发展研究及投资前景
- [幼儿教育]远程数字视频监控系统在银行的应用
- [幼儿教育]光纤光缆制造工艺及设备
- [幼儿教育]国家安全法试题及答案
- [幼儿教育]2011高中提前招生及竞赛试题(物理卷1)
- [幼儿教育]宁夏第三产业房地产业、科学研究和技术
- [幼儿教育]中兴通讯 ME3000模块用户硬件设计手册_
- [幼儿教育]紫外线灯管的辐照强度问题
- 苏联东欧剧变的原因和历史教训浅析
- 人工智能导论实验报告(学生)
- 思科ITE章考试原题及答案
- 《学习雷锋好榜样》主题班会教案
- 加油站建设项目安全评价报告
- 剖析社保卡管理系统
- 2017-2018年影视剧新媒体版权运营行业
- 2017-2018学年四川省成都市高一上学期
- 2019最新高中数学 第三章 3.2.1 几类不
- 2011-2015年中国基酸市场调查及行业前
- 人教版新课标选修八Unit 1 课件Warming
- 郭溪燎原小学辅导学生记录表
- 教师资格证统考综合素质写作秘笈
- 国外校园绿色建筑研究方向与建设实践
- 15.1 动物运动的方式 课件(北师大版八
- 民用飞机空调系统
- 长安侠文化传统与唐诗的任侠主题
- 《中国近现代史纲要》名词解释
- 11金本《保险学概论》复习资料
- 民用建筑机电安装工程专业施工图图纸会




