一个关于如何创建类似于QQ客户端聊天窗口的模拟小项目
对于不久之前学习到的一个有关的类似于QQ聊天框的模拟项目,对其中涉及到的知识在这里做一下总结。
- 首先,你要先创建一个客户端聊天框(取名为:ChatClient,它是你创建的类),这个类继承了Frame。而这个Frame是java.awt里的一个子类,它是带有标题和边框的顶层窗口,它里面有很多方法(具体查手册)。下面是一段示例代码:
1 import java.awt.*; 2 3 public class ChatClient extends Frame{//你创建的类继承了Frame 4 5 public static void main(String[] args) { 6 new ChatClient().launchFrame();//通过new实例化创建一个对象 7 } 8 9 public void launchFrame(){//设置聊天框的大小参数 10 setLocation(400,300); 11 setSize(300,300); 12 setVisible(true);//设置为可见 13 } 14 }
这是运行之后出现的一个雏形聊天框:
2. 第二步,调整聊天框的大小,并且往框架中添加控件。下面是代码:
1 import java.awt.*; 2 3 public class ChatClient extends Frame{ 4 //实例化创建对象 5 TextField tfTxt = new TextField(); 6 TextArea taContent = new TextArea(); 7 8 public static void main(String[] args) { 9 new ChatClient().launchFrame(); 10 } 11 12 public void launchFrame(){ 13 setLocation(400,300); 14 setSize(300,300); 15 //往框架中添加控件,Frame默认的布局是BorderLayout 16 add(tfTxt,BorderLayout.SOUTH); 17 add(taContent,BorderLayout.NORTH); 18 this.pack(); 19 20 21 setVisible(true); 22 } 23 }
这是运行之后的效果:
3.添加事件感应,可以往文本框中输入文字
1 import java.awt.*; 2 import java.awt.event.*; 3 4 public class ChatClient extends Frame { 5 6 // 添加文本域事件感应,三种方法:外部并行类,内部类,局部匿名类 7 TextField tfTxt = new TextField(); 8 TextArea taContent = new TextArea(); 9 10 public static void main(String[] args) { 11 new ChatClient().launchFrame();//通过new实例化创建一个对象 12 } 13 14 public void launchFrame() { 15 setLocation(400, 300); 16 setSize(300, 300); 17 // 往框架中添加控件 18 add(tfTxt, BorderLayout.SOUTH); 19 add(taContent, BorderLayout.NORTH); 20 this.pack();//打包 21 //给当前对象添加一个窗口监听事件 22 this.addWindowListener(new WindowAdapter(){ 23 public void windowClosing(WindowEvent e){ 24 System.exit(0); 25 } 26 }); 27 tfTxt.addActionListener(new TfListener());//给文本域添加一个事件监听 28 setVisible(true); 29 } 30 31 private class TfListener implements ActionListener{ 32 public void actionPerformed(ActionEvent e){ 33 String s = tfTxt.getText().trim(); 34 35 } 36 } 37 }
运行之后的效果:
4.添加客户端,通过socket链接客户端和服务器。
import java.io.IOException; import java.net.*;public class ChatServer {//添加服务端public static void main(String[] args) {try(ServerSocket ss = new ServerSocket(8888);//通过socket链接客户端和服务器端 ){while (true){Socket s = ss.accept();System.out.println( "a client connected!!" );} }catch(Exception e){e.printStackTrace();}}}
5.第五步,链接服务器。
import java.awt.*; import java.awt.event.*; import java.io.IOException; import java.net.*;public class ChatClient extends Frame {// 添加文本域事件感应,三种方法:外部并行类,内部类,局部匿名类TextField tfTxt = new TextField();TextArea taContent = new TextArea();public static void main(String[] args) {new ChatClient().launchFrame();}public void launchFrame() {setLocation(400, 300);setSize(300, 300);// 往框架中添加控件 add(tfTxt, BorderLayout.SOUTH);add(taContent, BorderLayout.NORTH);this.pack();this.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});tfTxt.addActionListener(new TfListener());setVisible(true);connect();}//链接服务器方法public void connect(){try(Socket s = new Socket("127.0.0.1", 8888);//端口号必须一致 ){System.out.println( "Connected sucsess" );}catch(IOException e){e.printStackTrace();}}private class TfListener implements ActionListener{public void actionPerformed(ActionEvent e){String s = tfTxt.getText().trim();}} }
先写到这里,有什么不对的地方,请大神敬请指教!
转载于:https://www.cnblogs.com/jinshuai/p/4709564.html
一个关于如何创建类似于QQ客户端聊天窗口的模拟小项目相关推荐
- 高通滤波的c语言程序,请教一个关于用C来编写高通滤波和FFT的小项目
得分:30 <信号处理与软计算>当年信号处理课做过FIR滤波器和FFT算法实现,里面有提到算法思想. 另外,网上有现成的FFT算法,比如下面这个,滤波器你自己找吧 #include #in ...
- php创建一个类,JavaScript_创建一个类Person的简单实例,创建一个类Person,包含以下属 - phpStudy...
创建一个类Person的简单实例 创建一个类Person,包含以下属性:姓名(name).年龄(age).朋友(friends数组).问候(sayhi方法,输出问候语,例如:"你好!&quo ...
- python小项目案例-Python小项目:快速开发出一个简单的学生管理系统
本文根据实际项目中的一部分api 设计抽象出来,实例化成一个简单小例子,暂且叫作「学生管理系统」. 这个系统主要完成下面增删改查的功能: 包括: 学校信息的管理 教师信息的管理 学生信息的管理 根据A ...
- python项目开发实例-Python小项目:快速开发出一个简单的学生管理系统
本文根据实际项目中的一部分api 设计抽象出来,实例化成一个简单小例子,暂且叫作「学生管理系统」. 这个系统主要完成下面增删改查的功能: 包括: 学校信息的管理 教师信息的管理 学生信息的管理 根据A ...
- 【WPF】一个类似于QQ面板的GroupShelf控件
最近做控件上了瘾,现在把做的一个类似于QQ面板的控件放上来. [分析] 从整体来看,这个控件应该同ListBox,ListView这类控件一样,是一个ItemsControl,而中间的项,就是它的It ...
- QT 实现类似于qq的登录注册界面
QT 实现类似于qq的登录界面(仅供参考) 看一下效果图 一:首先创建一个widget项目设计ui界面 使用了LineEdit,QPushButton,QToolButton,QLabel,还有弹簧 ...
- java qq聊天界面_【附源码】用Java写了一个类QQ界面聊天小项目,可在线聊天!...
原标题:[附源码]用Java写了一个类QQ界面聊天小项目,可在线聊天! 目录: 1.功能实现 2.模块划分 3.使用到知识 4.部分代码实现 5.运行例图 1.功能实现 1.修改功能(密码.昵称.个性 ...
- 前后端分离单点登录SSO实现方案 淘宝、京东跨域获取Cookie、OAuth2、QQ客户端多种模式
演示Demo站点 http://sso.exrick.cn 开源版Github地址 https://github.com/Exrick/x-boot) 开发文档 https://www.kanclou ...
- Java仿QQ客户端(用JTree实现好友列表)
仿QQ客户端 当前效果 登录界面 好友列表界面 当前效果 登录界面 首先,为了达到美观的目的,需要添加一张背景图片,我采用的方法是将图片添加到JLabel上,再将JLabel添加到界面上,但这样会面临 ...
最新文章
- python函数进阶小结_Python-进阶-functools模块小结
- MyEclipse默认编码为GBK,修改为UTF8的方法
- codeforces524E
- lseek函数实现对打开文件的定位
- Bit-Z亮相巴厘岛XBlockchain峰会
- Android开发之在任意Activity在广点通页面添加自定义布局在穿山甲页面添加任意布局
- 03-01 appium架构介绍与环境安装
- 多出口冗余网络设计方案
- (剑指Offer)面试题46:求1+2+3+....+n
- 剑指Offer之翻转单词顺序列
- java编译时绑定_为什么Java在编译时绑定变量?
- access 之 format 函数详解
- 7.计算机系统包括,windows7分几个版本_windows7有哪些版本
- zstuACM 问题 H: 超级跳跳跳1281
- 历年诺贝尔生理学或医学奖
- MyBatis一发入魂之插入操作
- python数字类型的分类和区别_讨论python的数据类型的区别
- Redis部署启动多个端口实例
- Android软件开发Log实时查看方式(无需数据线)
- 面试入职工作感悟:在阿里的那些风花雪月的日子
热门文章
- 毕业3年,我换了4份工作:好工作,是这样“熬”出来的
- 字节软件测试岗二面:APP测试问题被虐哭了,直到看到这些知识点
- linux 火狐浏览器插件,Linux系统Firefox(火狐浏览器)插件挂机
- zookeeper版本更新_很遗憾,没有一篇文章能讲清楚ZooKeeper
- 计算机教师招聘试题(汇总集合版),计算机教师招聘试题(汇总集合版)ed.doc
- ubuntu下pkgconfig的搜索路径
- PDE10 wave equation: d'Alembert's formula
- lesson3 Qt Signal and slots (QSlider and QProgressBar)
- matlab给图像加云,matlab怎么给图像加雾
- python常用_30个Python常用小技巧