资源简介
实现点对点实时聊天 若改进则可以做一个聊天室
代码片段和文件信息
import javax.swing.JOptionPane;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import java.net.*;
import java.text.DecimalFormat;
import javax.sound.sampled.*;
interface Module
{
TextArea display=new TextArea(1265);//这是一个文本域用来显示聊天内容
TextArea write=new TextArea(865);//用来输入聊天内容的文本域
frame f=new frame(“聊天工具“);//框架
Button send=new Button(“发送“);//发送按钮 用来发送消息
Button close=new Button(“关闭“);//关闭按钮 用来关闭对话框
Button talk=new Button(“语音聊天“);//语言聊天按钮 用来语音聊天
Button accept=new Button(“接受“);//接受按钮 用来接受对方语音聊天
Button reject=new Button(“拒绝“);//拒绝按钮 用来拒绝对方的语音聊天
String IP=“127.0.0.0“;//IP 地址 这是对方的IP 在程序运行的时候要进行修改
Capture cap=new Capture(IP);//Capture 是一个捕获声音并且将声音发送到目的IP地址的类
Playback player=new Playback();//Playback 是一个接受声音并且播放声音的类
}
public class Windows extends frame implements ActionListenerModule
{
static boolean begin=true;
Windows()
{
super(“聊天工具“);
f.setSize(500500);//设置框架大小为长500 宽500
f.setLocation(300300);
f.setFont(new Font(“Arial“Font.PLAIN12));//设置字体 为Font.PLAIN 大小为12
f.setLayout(new FlowLayout());//布局类型设置为FlowLayout
display.setEditable(false);//将显示聊天内容的框架设置为不可编辑
f.add(display);//将相应的控件添加到框架中去
f.add(write);
f.add(send);
f.add(talk);
f.add(close);
send.addActionListener(this);//下面几句话都是给控件加上监听器
close.addActionListener(this);
talk.addActionListener(this);
accept.addActionListener(this);
reject.addActionListener(this);
f.show();//将框架显示出来
}
public static void main(String args[])throws IOException
{
new Windows();
new RecieveThread().start();//接受对方信息的线程 这个线程接受的都是聊天的信息
new TalkReceiveRequestThread().start(); //接受对方一些请求的信息 比如语言聊天 以及拒绝语言聊天的信息
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==send)//如果是命令是发送则启动发送线程 并且将要发送的内容添加到display面板中去
{
String s;
if((write.getText().toString()).equals(““))
{
JOptionPane.showMessageDialog(null“发送的内同不能为空!““注意“JOptionPane.INFORMATION_MESSAGE);//如果发送内容是空的 则禁止发送
}
else
{
display.append(“\n老大:“+(new Date().toString())+“\n“+write.getText());//这是显示当前时间
new SendThread().start();
}
}
if(e.getSource()==close)//如果命令是关闭 则整个程序结束
{
System.exit(0);
}
if(e.getSource()==talk)//如果命令是语音聊天 进行判断 第一次点击该命令的时候是请求语聊 第二次则是关闭语聊
{
if(begin)//如果是第一次 则是请求语聊
{
display.append(“\n正与对方建立连接!“);
talk.setLabel(“关闭语音“);//设置按钮的内容
begin=false;
new TalkRequestThread(“talkstart“).start(); //发出一个语音聊天请求
}
else
{
display.append(“\n已经断开连接!“);//断开语音聊天 并且发出一个断开请求
talk.setLabel(“语音聊天“);
begin=true;
new TalkRequestThread(“talkended“).start();
cap.stop();//因为要断开语言聊天 则接语音收线程要断开 发送线程也要断开
player.stop();
}
}
if(e.getSource()==accept)//如果命令是接受 该命令表示答应对方的语
- 上一篇:JAVA实现找回密码功能详解。
- 下一篇:mvc模式画圆JAVA实现
相关资源
- mvc模式画圆JAVA实现
- JAVA实现找回密码功能详解。
- java文本编辑器 仿windows记事本
- FineReport报表API源代码报表调用
- Thinking in Java(第四版)源代码
- java的hill算法
- 餐厅点菜管理系统-数据库课程设计
- 公司访客登记系统JavaBean+Servlet+MySql
- 大作业JAVA拼图游戏
- javaweb入门实现图片上传,图片加载,
- javaEE课程设计211170
- javaweb简单实现文件上传与源代码
- Java Web开发大全基础卷、提高卷 源码
- 脱敏处理java项目高收藏
- ReadCardNumber.java
- java汉诺塔动画实现
- java web留言板-带数据库
- java 住院管理系统 sql2000 c/s
- java版FPgrowth
- Java-WebSocket完整代码包
- JAVA国际象棋
- 《剑指Offer》Java版代码高清带目录.
- 《剑指Offer》题目及代码带目录修订版
- 《剑指Offer》题目及代码修订版
- 《剑指Offer》题目及Java版代码带目录
- java web软件工程师简历实战应聘简历
- java网络课程设计聊天室
- 飞机大战java游戏
- Java微信点餐系统
- 人事管理系统java数据库课程设计+SQ
评论
共有 条评论