对于不久之前学习到的一个有关的类似于QQ聊天框的模拟项目,对其中涉及到的知识在这里做一下总结。

  1. 首先,你要先创建一个客户端聊天框(取名为: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客户端聊天窗口的模拟小项目相关推荐

  1. 高通滤波的c语言程序,请教一个关于用C来编写高通滤波和FFT的小项目

    得分:30 <信号处理与软计算>当年信号处理课做过FIR滤波器和FFT算法实现,里面有提到算法思想. 另外,网上有现成的FFT算法,比如下面这个,滤波器你自己找吧 #include #in ...

  2. php创建一个类,JavaScript_创建一个类Person的简单实例,创建一个类Person,包含以下属 - phpStudy...

    创建一个类Person的简单实例 创建一个类Person,包含以下属性:姓名(name).年龄(age).朋友(friends数组).问候(sayhi方法,输出问候语,例如:"你好!&quo ...

  3. python小项目案例-Python小项目:快速开发出一个简单的学生管理系统

    本文根据实际项目中的一部分api 设计抽象出来,实例化成一个简单小例子,暂且叫作「学生管理系统」. 这个系统主要完成下面增删改查的功能: 包括: 学校信息的管理 教师信息的管理 学生信息的管理 根据A ...

  4. python项目开发实例-Python小项目:快速开发出一个简单的学生管理系统

    本文根据实际项目中的一部分api 设计抽象出来,实例化成一个简单小例子,暂且叫作「学生管理系统」. 这个系统主要完成下面增删改查的功能: 包括: 学校信息的管理 教师信息的管理 学生信息的管理 根据A ...

  5. 【WPF】一个类似于QQ面板的GroupShelf控件

    最近做控件上了瘾,现在把做的一个类似于QQ面板的控件放上来. [分析] 从整体来看,这个控件应该同ListBox,ListView这类控件一样,是一个ItemsControl,而中间的项,就是它的It ...

  6. QT 实现类似于qq的登录注册界面

    QT 实现类似于qq的登录界面(仅供参考) 看一下效果图 一:首先创建一个widget项目设计ui界面 使用了LineEdit,QPushButton,QToolButton,QLabel,还有弹簧 ...

  7. java qq聊天界面_【附源码】用Java写了一个类QQ界面聊天小项目,可在线聊天!...

    原标题:[附源码]用Java写了一个类QQ界面聊天小项目,可在线聊天! 目录: 1.功能实现 2.模块划分 3.使用到知识 4.部分代码实现 5.运行例图 1.功能实现 1.修改功能(密码.昵称.个性 ...

  8. 前后端分离单点登录SSO实现方案 淘宝、京东跨域获取Cookie、OAuth2、QQ客户端多种模式

    演示Demo站点 http://sso.exrick.cn 开源版Github地址 https://github.com/Exrick/x-boot) 开发文档 https://www.kanclou ...

  9. Java仿QQ客户端(用JTree实现好友列表)

    仿QQ客户端 当前效果 登录界面 好友列表界面 当前效果 登录界面 首先,为了达到美观的目的,需要添加一张背景图片,我采用的方法是将图片添加到JLabel上,再将JLabel添加到界面上,但这样会面临 ...

最新文章

  1. python函数进阶小结_Python-进阶-functools模块小结
  2. MyEclipse默认编码为GBK,修改为UTF8的方法
  3. codeforces524E
  4. lseek函数实现对打开文件的定位
  5. Bit-Z亮相巴厘岛XBlockchain峰会
  6. Android开发之在任意Activity在广点通页面添加自定义布局在穿山甲页面添加任意布局
  7. 03-01 appium架构介绍与环境安装
  8. 多出口冗余网络设计方案
  9. (剑指Offer)面试题46:求1+2+3+....+n
  10. 剑指Offer之翻转单词顺序列
  11. java编译时绑定_为什么Java在编译时绑定变量?
  12. access 之 format 函数详解
  13. 7.计算机系统包括,windows7分几个版本_windows7有哪些版本
  14. zstuACM 问题 H: 超级跳跳跳1281
  15. 历年诺贝尔生理学或医学奖
  16. MyBatis一发入魂之插入操作
  17. python数字类型的分类和区别_讨论python的数据类型的区别
  18. Redis部署启动多个端口实例
  19. Android软件开发Log实时查看方式(无需数据线)
  20. 面试入职工作感悟:在阿里的那些风花雪月的日子

热门文章

  1. 毕业3年,我换了4份工作:好工作,是这样“熬”出来的
  2. 字节软件测试岗二面:APP测试问题被虐哭了,直到看到这些知识点
  3. linux 火狐浏览器插件,Linux系统Firefox(火狐浏览器)插件挂机
  4. zookeeper版本更新_很遗憾,没有一篇文章能讲清楚ZooKeeper
  5. 计算机教师招聘试题(汇总集合版),计算机教师招聘试题(汇总集合版)ed.doc
  6. ubuntu下pkgconfig的搜索路径
  7. PDE10 wave equation: d'Alembert's formula
  8. lesson3 Qt Signal and slots (QSlider and QProgressBar)
  9. matlab给图像加云,matlab怎么给图像加雾
  10. python常用_30个Python常用小技巧