类似于QQ的简单的聊天代码

先编辑页面

package com.lovo.feichun;

import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;

import javax.swing.AbstractButton;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.text.JTextComponent;

public class FeiChunFrame extends JFrame{

private Container contentP;

private JTextArea msgArea;//文本域

private JButton FaSongJbt;

private JButton PingChuJbt;
//文本框
// private JTextField DiZhiText;

private JTextField ShuRuText;

private Object fromClient;

private JComboBox xiaComb;

private Properties ppt;

private JCheckBox chooseJbx;

private JTextField huiFuText;

public FeiChunFrame() {

ppt = new Properties();

try {
ppt.load(new FileInputStream("j124.properties"));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

// TODO Auto-generated constructor stub
//工具箱
Toolkit tk = Toolkit.getDefaultToolkit();
//窗体大小
this.setSize(400, 400);
int screenW = (int) tk.getScreenSize().getWidth();
int screenH = (int) tk.getScreenSize().getHeight();
this.setLocation((screenW - 400) / 2, (screenH - 400) / 2);
// 窗体大小是否可更改
this.setResizable(true);
//
this.setIconImage(tk.createImage("img/logo.GIF"));
// 标题
this.setTitle("我的飞春");
//
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 内容面板
this.addContent();
// 窗体可见性
this.setVisible(true);

jianTing();

}

public JComboBox getXiaComb() {
return xiaComb;
}

public void setXiaComb(JComboBox xiaComb) {
this.xiaComb = xiaComb;
}

public Properties getPpt() {
return ppt;
}

public void setPpt(Properties ppt) {
this.ppt = ppt;
}

private void addContent() {
// TODO Auto-generated method stub
//
this.contentP = this.getContentPane();
// 空布局
this.contentP.setLayout(null);

this.msgArea = new JTextArea();
this.setBackground(Color.WHITE);
this.msgArea.setEnabled(false);
JScrollPane sp = new JScrollPane(this.msgArea);
sp.setBounds(5, 5, 370, 270);
this.contentP.add(sp);

this.ShuRuText = new JTextField("");
this.ShuRuText.setBounds(10, 280, 100, 25);
this.contentP.add(this.ShuRuText);

this.FaSongJbt = new JButton("发送");
this.FaSongJbt.setBounds(120, 280, 60, 25);
this.contentP.add(this.FaSongJbt);
this.FaSongJbt.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
Date d=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time=sdf.format(d);
String str=FeiChunFrame.this.ShuRuText.getText();
String IP=FeiChunFrame.this.ppt.getProperty(str);
// String sendIP = FeiChunFrame.this.ShuRuText.getText();
FeiChunFrame.this.msgArea.setText(time+"\n"+"我说"+str);
Socket client = null;
try {
client = new Socket(IP, 9527);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
bw.write("王海军&" + "&" + str);
bw.flush();

} catch (UnknownHostException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}finally{
if(client !=null){
try {
client.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
});

// this.DiZhiText = new JTextField("");
// this.DiZhiText.setBounds(190, 280, 80, 25);
// this.contentP.add(this.DiZhiText);

this.chooseJbx = new JCheckBox("自动回复");
this.chooseJbx.setBounds(10, 310, 100, 25);
this.contentP.add(this.chooseJbx);

this.huiFuText = new JTextField("");
this.huiFuText.setBounds(130, 310, 80, 25);
this.contentP.add(this.huiFuText);

this.xiaComb = new JComboBox(this.ppt.keySet().toArray());
this.xiaComb.setBounds(190, 280, 80, 25);
this.contentP.add(this.xiaComb);

this.PingChuJbt = new JButton("清除");
this.PingChuJbt.setBounds(280, 280, 60, 25);
this.contentP.add(this.PingChuJbt);
this.PingChuJbt.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
FeiChunFrame.this.msgArea.setText(null);
}
});
}

public void jianTing(){

ServerSocket server = null;

try {
server = new ServerSocket(9527);
while(true){
Socket fc = server.accept();

new MSGThread(fc, this).start();

}

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(server != null){
try {
server.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

}

public Container getContentP() {
return contentP;
}

public void setContentP(Container contentP) {
this.contentP = contentP;
}

public JTextArea getMsgArea() {
return msgArea;
}

public void setMsgArea(JTextArea msgArea) {
this.msgArea = msgArea;
}

public JButton getFaSongJbt() {
return FaSongJbt;
}

public void setFaSongJbt(JButton faSongJbt) {
FaSongJbt = faSongJbt;
}

public JButton getPingChuJbt() {
return PingChuJbt;
}

public void setPingChuJbt(JButton pingChuJbt) {
PingChuJbt = pingChuJbt;
}

// public JTextField getDiZhiText() {
// return DiZhiText;
// }
//
// public void setDiZhiText(JTextField diZhiText) {
// DiZhiText = diZhiText;
// }

public JTextField getShuRuText() {
return ShuRuText;
}

public void setShuRuText(JTextField shuRuText) {
ShuRuText = shuRuText;
}

public Object getFromClient() {
return fromClient;
}

public void setFromClient(Object fromClient) {
this.fromClient = fromClient;
}

}

用来监听消息

package com.lovo.feichun;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;

public class MSGThread extends Thread{

private Socket fromClient;
private FeiChunFrame feichun;

public MSGThread(Socket fromClient,FeiChunFrame feichun) {
// TODO Auto-generated constructor stub

this.fromClient = fromClient;
this.feichun = feichun;
}

public void run(){

BufferedReader br= null;
try {
br = new BufferedReader(new InputStreamReader(
fromClient.getInputStream()));
String str = br.readLine();
String[] allMsg = str.split("&");
// Date sendTime = new Date(Long.parseLong(allMsg[2]));
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// System.out.println(sdf.format(sendTime));
// System.out.println(allMsg[0] + "说:" + allMsg[1]);
this.getFeichun().getMsgArea().append(this.getFeichun().getMsgArea().getText()+"\n"+"\n"+allMsg[0]+"他说:"+allMsg[1]);

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(br != null){
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(this.fromClient != null){
try {
this.fromClient.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

}

public FeiChunFrame getFeichun() {
return feichun;
}

public void setFeichun(FeiChunFrame feichun) {
this.feichun = feichun;
}

}

main方法运行

package com.lovo.test;

import com.lovo.feichun.FeiChunFrame;

public class TestMain {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new FeiChunFrame();
}

}

自己都不知道怎么写完的

时间: 2024-11-05 13:38:39

类似于QQ的简单的聊天代码的相关文章

营销QQ强制弹出聊天代码,自动抓取访客QQ号码

主要功能: 1.把代码放入网站后,当访客访问时,会自动自动弹窗聊天框聊天,更快更便捷的聊天,及时的抓住客户.代码可设置延时时间.再次访问弹窗时间,比如可以设置第一次访问时5秒钟就弹出聊天框,而24小时小时内不会再弹出聊天框,这样就完全不影响访客体验.还可以设置来自搜索引擎的访客才弹出,针对性更强,特别是在搜索引擎竞价的网站! 弹出界面截图演示 2.弹窗聊天框的同时,也获取了访客的QQ号码,这是营销QQ独特的功能,比网络上那些获取访客QQ的代码更准更有效,毕竟交了几千块给腾讯. 抓取到访客QQ能做

【iOS基础控件 - 11】【Demo】模仿qq ,微信 UI 聊天界面

A.需求 做出一个类似于QQ.微信的聊天界面 1.每个cell包含发送时间.发送人(头像).发送信息 2.使用对方头像放在左边,我方头像在右边 3.对方信息使用白色背景对话框,我方信息使用蓝色背景对话框 4.隐藏相同的发送时间 5.底部功能按钮:语音按钮.消息输入框.表情按钮.附加按钮 6.响应键盘事件,呼出键盘.隐藏键盘时对上述的视图作出上移操作 7.键盘的发送事件处理 Code Source: B.实现点 1.底层视图搭建 上部分聊天信息框:UITableView 下部分功能区:UIButt

HTML QQ聊天代码 简单的一行代码

简单的一行代码: <a href="tencent://message/?uin=173007740&Site=&Menu=yes">和173007740用户聊天</a> 和173007740用户聊天 1.如果用户没有登录QQ,则会弹出QQ登录窗口,登录之后,再点击链接,就可以聊天了 2.如果没有对方QQ,需要加对方QQ为好友,才可以进行聊天 3.如果已有对方QQ,可直接进行聊天

查看图片插件--Viewer(类似于qq和微信聊天 的查看图片)

Viewer的github地址:https://github.com/fengyuanchen/viewer  下载该插件(在文件夹dist里面) 具有参考价值的几个网站:http://www.dowebok.com/demo/192/index3.html      http://www.szbelle.com/article/2890.html      http://www.jq22.com/jquery-info6536 Viewer的使用,参考:http://www.dowebok.c

最简单的聊天机器人、人机互动对话代码。(1)

工具:eclipse;JAVA JDK; 语言:java 作者:蛋白 时间:2016.11.23 1 import java.util.Scanner; 2 3 //下面是一个最简单的人机互动对话代码,最简单的聊天机器人. 4 public class a { 5 public static void main(String[] args) { 6 Scanner scan=new Scanner(System.in); 7 String talk = scan.next();//把从控制台输入

最新QQ强制聊天代码,同时可判断好友关系

QQ强聊虽然早就变成了一个传说,但现在依然可以实现. 小菜其实早就知道这个漏洞,但是一直没公布,前两天突然来兴致试了试,没想到漏洞依然存在. 然后小菜跑到了乌云漏洞报告平台举报漏洞,但没想到被腾讯鲁莽的否认了,他竟然说漏洞不存在,漏洞不存在,那些截图是怎么来的...小菜辛辛苦苦写的漏洞原理,就这么无情的被拒绝了... 小菜很失望,既然腾讯这么不负责任,那小菜就把漏洞发出来. 漏洞的具体原理,小菜已经在乌云上阐述了<腾讯QQ强制聊天漏洞>,十分的详细,在这不多说. 为了让读者更方便的利用此漏洞,

Java网络编程以及简单的聊天程序

网络编程技术是互联网技术中的主流编程技术之一,懂的一些基本的操作是非常必要的.这章主要讲解网络编程,UDP和Socket编程,以及使用Socket做一个简单的聊天软件. 全部代码下载:链接 1.网络编程简要概述: 网络编程实质实质就是两个(或多个)设备(例如计算机)之间的数据传输.而要实现两台计算机通过互联网连接进行数据传输,必输要满足计算机网络的5层协议(物理层,数据链路层,网络层,运输层,应用层):当然有划分可能不同,但现在大家比较容易接受理解的是五层模型.而其中前三层物理层,数据链路层以及

一个关于如何创建类似于QQ客户端聊天窗口的模拟小项目

对于不久之前学习到的一个有关的类似于QQ聊天框的模拟项目,对其中涉及到的知识在这里做一下总结. 首先,你要先创建一个客户端聊天框(取名为:ChatClient,它是你创建的类),这个类继承了Frame.而这个Frame是java.awt里的一个子类,它是带有标题和边框的顶层窗口,它里面有很多方法(具体查手册).下面是一段示例代码: 1 import java.awt.*; 2 3 public class ChatClient extends Frame{//你创建的类继承了Frame 4 5

从一个简单的聊天程序SimpleChat看VPN技术

SimpleVPN写好了以后,感觉比较简单,我觉得只有简单的东西才经得起折腾,才能全民折腾,所以说SimpleVPN还不够简单,本文来一个更加简单的,展示一个超级简单的点对点聊天程序,而且还带简单加密哦.顺便,我们再来看下,到底什么是VPN以及怎样实现它.       QQ如今才刚刚行过成年之礼,典型的90后00前,却早已到了后浪把前浪拍到岸边的砍儿,果不其然,被10后的微信给逆袭了...好在都是腾讯的,这就把竞争收敛到了公司内部,不然这将意味着一个巨人的倒下,太可怕了.多年前,很多人逆向过QQ