www.pudn.com > MyClient.rar > MyClient.java
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.net.*;
import java.util.*;
import java.awt.event.*;
public class MyClient extends JFrame{
JTextArea Msgjta,MsgLogjta;
JScrollPane Msgjsp,MsgLogjsp,UserListjsp;
JButton send,cancel,Setname,FileSend;
JLabel Msglab,MsgLoglab,UserListlab,Targetlab;
JPanel panel1,panel2,panel3;
java.awt.List UserList;
JRadioButton Unicast,P2P;
JPanel panel21,panel22,panel23,panel23button;
JTextField Namejtf;
JFileChooser jfilechooser;
String File_send = "";
String File_save = "";
BufferedReader in;
PrintWriter outMessage;
Socket socket;
String inMessage = "";
String Username = "";
String Oldname = "";
String OtherUser = "";
String Myname= "";
MyClient(){
jfilechooser = new JFileChooser(new File("."));
panel1 = new JPanel();
panel2 = new JPanel();
panel3 = new JPanel();
setLayout(new BorderLayout(10,10));
getContentPane().add(panel1,BorderLayout.WEST);
getContentPane().add(panel2,BorderLayout.CENTER);
getContentPane().add(panel3,BorderLayout.SOUTH);
panel1.setLayout(new BorderLayout(10,10));
UserListlab = new JLabel("Client List");
UserList = new java.awt.List(10,false);
UserListjsp = new JScrollPane(UserList,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
panel1.add(UserListlab,BorderLayout.NORTH);
panel1.add(UserListjsp,BorderLayout.CENTER);
panel21 = new JPanel();
panel21.setLayout(new BorderLayout(10,10));
Targetlab = new JLabel("Input your Name under(only one time):");
Namejtf = new JTextField();
panel21.add(Targetlab,BorderLayout.NORTH);
panel21.add(Namejtf,BorderLayout.CENTER);
panel22 = new JPanel();
panel22.setLayout(new FlowLayout(FlowLayout.LEFT,5,10));
Msglab = new JLabel("Message");
Unicast = new JRadioButton("Unicast");
Unicast.setSelected(true);
P2P = new JRadioButton("P2P");
ButtonGroup group = new ButtonGroup();
group.add(Unicast);
group.add(P2P);
Setname = new JButton("Setname");
FileSend = new JButton("FileSend");
panel22.add(Msglab);
panel22.add(Unicast);
panel22.add(P2P);
panel22.add(Setname);
panel22.add(FileSend);
panel23button = new JPanel();
panel23button.setLayout(new FlowLayout(FlowLayout.CENTER,5,10));
send = new JButton("send");
cancel = new JButton("cancel");
panel23button.add(send);
panel23button.add(cancel);
panel23 = new JPanel();
panel23.setLayout(new BorderLayout(10,10));
Msgjta = new JTextArea(5,60);
Msgjsp = new JScrollPane(Msgjta,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
panel23.add(panel22,BorderLayout.NORTH);
panel23.add(Msgjsp,BorderLayout.CENTER);
panel23.add(panel23button,BorderLayout.SOUTH);
panel2.setLayout(new BorderLayout(10,10));
panel2.add(panel21,BorderLayout.NORTH);
panel2.add(panel23,BorderLayout.CENTER);
panel3.setLayout(new BorderLayout());
MsgLogjta = new JTextArea(10,60);
MsgLogjta.setEditable(false);
MsgLoglab = new JLabel("Message Log");
MsgLogjsp = new JScrollPane(MsgLogjta,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
panel3.add(MsgLoglab,BorderLayout.NORTH);
panel3.add(MsgLogjsp,BorderLayout.CENTER);
setTitle("Client");
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
ButtonListener sendMessage = new ButtonListener();
send.addActionListener(sendMessage);
Name_ButtonListener setname = new Name_ButtonListener();
Setname.addActionListener(setname);
Filesend_ButtonListener filesend = new Filesend_ButtonListener();
FileSend.addActionListener(filesend);
try{
socket = new Socket("127.0.0.1",8000);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
outMessage = new PrintWriter(socket.getOutputStream());
while(true){
inMessage = in.readLine().trim();
if(inMessage.indexOf("系统提示:") != -1 && inMessage.indexOf("在线") != -1){
OtherUser = inMessage.substring(5,inMessage.indexOf("在"));
UserList.add(OtherUser);
}
else if(inMessage.indexOf("系统提示:") != -1 && inMessage.indexOf("来了") != -1){
Oldname = inMessage.substring(5,inMessage.indexOf("来"));
UserList.add(Oldname);
}
else if(inMessage.indexOf("系统提示:") != -1 && inMessage.indexOf("下线了") != -1){
OtherUser = inMessage.substring(5,inMessage.indexOf("下"));
UserList.remove(OtherUser);
}
else if(inMessage.indexOf("系统提示:") != -1 && inMessage.indexOf("改名为") != -1){
Oldname = inMessage.substring(5,inMessage.indexOf("改"));
Username = inMessage.substring(9+Oldname.length(),inMessage.length()-1);
UserList.remove(Oldname);
UserList.add(Username);
Oldname = Username;
}
else if(inMessage.indexOf("系统提示:") != -1 && inMessage.indexOf("发文件") != -1){
File_save = inMessage.substring(inMessage.indexOf("件")-1,inMessage.length()-inMessage.indexOf("件"));
}
else if(inMessage.indexOf("系统提示:") != -1 && inMessage.indexOf("拒绝接受") != -1){
MsgLogjta.append(new Date()+ inMessage);
}
if(inMessage.indexOf("系统提示:") != -1 && inMessage.indexOf("发文件") != -1){
MsgLogjta.append(new Date()+ " " + "系统提示:" + inMessage.indexOf(5,inMessage.indexOf("对"))+"对你发送文件,请接收!"+ "\n");
SaveFile();
}
else
MsgLogjta.append(new Date()+ " " + inMessage + "\n");
}
}catch(IOException ex){
System.out.println("^^^"+ex);
}
}
//信息发送
class ButtonListener implements ActionListener{
String who = "";
public void actionPerformed(ActionEvent e){
if(Unicast.isSelected()){
boolean is_public = true;
for(int i=0;i