📄 message.java
字号:
package PC;
import java.io.*;
import java.net.*;
import java.util.Vector;
import java.awt.*;
import javax.swing.*;
import javax.swing.border.TitledBorder;
import java.awt.event.*;
public class Message extends Thread
{
private final static String NEW_LINE = System.getProperty("line.separator");
private int iport;
private Socket cc;
private Socket fc;
private Socket tc;
private OutputStreamWriter osw=null;
private InputStreamReader isr=null;
private BufferedReader br;
private JTextField sip;
private JTextField cip;
private JTextField sport;
private JTextField cport;
private JTextArea input=new JTextArea();
private JButton request;
private JButton accept;
private JButton open;
private JButton audio;
private JTextArea chatroom=new JTextArea();
private JFrame cf;
private String add;
private String port;
private MultiThread send;
private MultiChat insecond;
private String name;
public Message(String add,String port,String name)
{
super("CHAT-ROOM for "+name);
this.add=add;
this.port=port;
this.name=name;
sip=new JTextField();
cip=new JTextField();
sport=new JTextField();
cport=new JTextField();
request=new JButton("ASK");
accept=new JButton("SENT");
open=new JButton("SENT-FILE");
audio=new JButton("MIC-SPC");
cf=new ChatFrame(sip,cip,sport,cport,input,chatroom,accept,open,audio,this);
cf.setSize(480, 385);
cf.show();
if(!port.equals(""))
iport=Integer.parseInt(port);
}
public void run()
{
request.setVisible(false);
try
{
if(cc==null)
{
cc=new Socket(add,iport*2+7444);
fc=new Socket(add,7656);
tc=new Socket(add,7652);
}
}
catch(Exception e)
{
chatroom.append(add +":"+ iport +"已经下线"+ '\n');
try
{
Thread.sleep(1000);
}
catch(InterruptedException ie)
{
System.exit(0);
}
System.out.println(e.toString());
}
sip.setText(cc.getInetAddress().getHostAddress());
sport.setText(cc.getPort()+"");
cip.setText(cc.getLocalAddress().getHostAddress());
cport.setText(cc.getLocalPort()+"");
accept.requestFocus();
try
{
osw= new OutputStreamWriter(cc.getOutputStream());
isr = new InputStreamReader(cc.getInputStream());
br= new BufferedReader(isr);
}
catch(IOException ioe)
{
}
accept.setEnabled(true);
accept.addActionListener(new BsendListener(chatroom, input, osw));
open.setEnabled(true);
open.addActionListener(new Select(osw));
audio.setEnabled(true);
audio.addActionListener(new Talk());
insecond=new MultiChat(chatroom,osw,br,fc,name);
insecond.start();
}
class BsendListener implements ActionListener
{
JTextArea chatroom;
JTextArea input;
OutputStreamWriter osw;
BsendListener(JTextArea content, JTextArea send, OutputStreamWriter osw){
this.chatroom = content;
this.input= send;
this.osw = osw;
}
public void actionPerformed(ActionEvent e)
{
String inputs;
inputs=input.getText();
if(inputs.length() > 0)
{
chatroom.append(NEW_LINE+name+": ");
chatroom.append(NEW_LINE+" "+inputs);
try
{
String n=name+":";
osw.write(n+'\n',0,n.length()+1);
osw.flush();
osw.write(" "+inputs+'\n',0,(" "+inputs).length()+1);
osw.flush();
}
catch(Exception ee)
{
chatroom.append(NEW_LINE+"不能发送 \""+inputs+"\" , 发生了错误 : "+ee.getMessage());
}
input.setText("");
input.requestFocus();
}
}
}
public class Select implements ActionListener
{
OutputStreamWriter osw;
Select(OutputStreamWriter osw)
{
this.osw=osw;
}
public void actionPerformed(ActionEvent e)
{
try
{
send=new MultiThread(fc,"send",osw,chatroom);
send.start();
}
catch(Exception ex)
{
chatroom.append(NEW_LINE+"发生了错误 : "+ex.getMessage());
}
}
}
public class Talk implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
try
{
Capture talker=new Capture(tc);
Playback listener=new Playback(tc);
talker.start();
listener.start();
}
catch(Exception ex)
{
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -