xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 13KB
    文件類型: .java
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-06-08
  • 語言: Java
  • 標(biāo)簽: JAVA??

資源簡(jiǎn)介

實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)實(shí)時(shí)聊天 若改進(jìn)則可以做一個(gè)聊天室

資源截圖

代碼片段和文件信息

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);//這是一個(gè)文本域用來顯示聊天內(nèi)容
TextArea?write=new?TextArea(865);//用來輸入聊天內(nèi)容的文本域
frame?f=new?frame(“聊天工具“);//框架
Button?send=new?Button(“發(fā)送“);//發(fā)送按鈕?用來發(fā)送消息
Button?close=new?Button(“關(guān)閉“);//關(guān)閉按鈕?用來關(guān)閉對(duì)話框
Button?talk=new?Button(“語音聊天“);//語言聊天按鈕?用來語音聊天
Button?accept=new?Button(“接受“);//接受按鈕?用來接受對(duì)方語音聊天
????Button?reject=new?Button(“拒絕“);//拒絕按鈕?用來拒絕對(duì)方的語音聊天
String?IP=“127.0.0.0“;//IP?地址?這是對(duì)方的IP?在程序運(yùn)行的時(shí)候要進(jìn)行修改
Capture?cap=new?Capture(IP);//Capture?是一個(gè)捕獲聲音并且將聲音發(fā)送到目的IP地址的類
????Playback?player=new?Playback();//Playback?是一個(gè)接受聲音并且播放聲音的類
}



public?class?Windows?extends?frame?implements?ActionListenerModule
{

static boolean?begin=true;
Windows()
{
super(“聊天工具“);
????f.setSize(500500);//設(shè)置框架大小為長(zhǎng)500?寬500
????f.setLocation(300300);
????f.setFont(new?Font(“Arial“Font.PLAIN12));//設(shè)置字體?為Font.PLAIN?大小為12
????f.setLayout(new?FlowLayout());//布局類型設(shè)置為FlowLayout
????display.setEditable(false);//將顯示聊天內(nèi)容的框架設(shè)置為不可編輯
????f.add(display);//將相應(yīng)的控件添加到框架中去
????f.add(write);
????f.add(send); ??? ???
????f.add(talk);
????f.add(close);
????send.addActionListener(this);//下面幾句話都是給控件加上監(jiān)聽器
????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();//接受對(duì)方信息的線程??這個(gè)線程接受的都是聊天的信息
new?TalkReceiveRequestThread().start(); //接受對(duì)方一些請(qǐng)求的信息?比如語言聊天?以及拒絕語言聊天的信息


}




public?void?actionPerformed(ActionEvent?e)
{

if(e.getSource()==send)//如果是命令是發(fā)送則啟動(dòng)發(fā)送線程?并且將要發(fā)送的內(nèi)容添加到display面板中去
{
String?s;
????if((write.getText().toString()).equals(““))
{

JOptionPane.showMessageDialog(null“發(fā)送的內(nèi)同不能為空!““注意“JOptionPane.INFORMATION_MESSAGE);//如果發(fā)送內(nèi)容是空的?則禁止發(fā)送
}
else
{
display.append(“\n老大:“+(new?Date().toString())+“\n“+write.getText());//這是顯示當(dāng)前時(shí)間
new?SendThread().start();
}


}

if(e.getSource()==close)//如果命令是關(guān)閉?則整個(gè)程序結(jié)束
{

System.exit(0);

}
if(e.getSource()==talk)//如果命令是語音聊天?進(jìn)行判斷?第一次點(diǎn)擊該命令的時(shí)候是請(qǐng)求語聊??第二次則是關(guān)閉語聊
{
if(begin)//如果是第一次?則是請(qǐng)求語聊
{
display.append(“\n正與對(duì)方建立連接!“);
talk.setLabel(“關(guān)閉語音“);//設(shè)置按鈕的內(nèi)容
begin=false;
new?TalkRequestThread(“talkstart“).start(); //發(fā)出一個(gè)語音聊天請(qǐng)求
}
else?
{
display.append(“\n已經(jīng)斷開連接!“);//斷開語音聊天?并且發(fā)出一個(gè)斷開請(qǐng)求
talk.setLabel(“語音聊天“);
begin=true;
new?TalkRequestThread(“talkended“).start();
cap.stop();//因?yàn)橐獢嚅_語言聊天?則接語音收線程要斷開??發(fā)送線程也要斷開
player.stop();



}
}
if(e.getSource()==accept)//如果命令是接受??該命令表示答應(yīng)對(duì)方的語

評(píng)論

共有 條評(píng)論