JAVA局域网聊天系统源代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

这是我自己做的简单聊天系统客户端

package LiaoTianSys;

import java.awt.*;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import .Socket;

import .UnknownHostException;

public class ConversationFrame extends JFrame {

JScrollPane jsp;

JTextField jtf;

static JTextArea jta;

//JTextArea jat1,jta2;

JButton enter=new JButton("发送");

JButton jb=new JButton("聊天室好友");

JButton jb2=new JButton("进入聊天室");

JButton jb3=new JButton("刷新在线人员列表");

JPanel jp,jp1,jp3,jp4;

DefaultListModel listmodel = new DefaultListModel();

//static String[] NAME=new String[10];

String n[]={"f"};

JList list=new JList(listmodel);

JLabel time=new JLabel("当前系统时间:");

JLabel showtime=new JLabel("显示时间");

JLabel jl=new JLabel("输聊天信息");

JLabel nicheng=new JLabel("昵称");

JTextField NCshuru=new JTextField(10);

static DataOutputStream dos;

static DataInputStream dis;

//final LoginFrame lf;

Socket socket;

public ConversationFrame()

{

Container con=getContentPane();

con.setLayout(new BorderLayout());

jp=new JPanel();

setSize(700,600);

setLocation(100,100);

jta=new JTextArea();

jta.setEditable(false);

jsp=new JScrollPane(jta);

con.add(jsp,BorderLayout.CENTER);

jtf=new JTextField(20);

jp.add(jl);

jp.add(jtf);

jp.add(enter);

con.add(jp,BorderLayout.SOUTH);

jp1=new JPanel(new BorderLayout());

JScrollPane jsp1=new JScrollPane(list);

jp1.add(jsp1,BorderLayout.CENTER);

jp1.add(jb,BorderLayout.NORTH);

con.add(jp1,BorderLayout.EAST);

//pack();

jp3=new JPanel();

jp3.add(nicheng);

jp3.add(NCshuru);

jp3.add(jb2);

con.add(jp3,BorderLayout.NORTH);

jp4=new JPanel(new GridLayout(10,1));

jp4.add(jb3);

jp4.add(time);

jp4.add(showtime);

new getTime(this).start();

con.add(jp4,BorderLayout.WEST);

setVisible(true);

// 发送信息给所有人

enter.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent arg0) {

// TODO Auto-generated method stub

String info=jtf.getText();

try {

dos.writeUTF(NCshuru.getText()+" 对所有人说:"+info);

dos.flush();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

});

//进入聊天室时将自己的昵称发给服务器,首先去验证是否会与已有的人同名,本聊天室是不支持同昵称聊天

jb2.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

String msg=NCshuru.getText().toString();//得到昵称

if(msg.length()==0)

{

JOptionPane.showMessageDialog(null, "昵称不应该为空,", "温馨提示", RMA TION_MESSAGE);

}

{

try{

dos.writeUTF("name"+msg);

dos.flush();

}catch(Exception ex)

{

System.out.println(ex.getMessage());

}

}

}

});

//向服务器请求更新在线人员列表

jb3.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

try {

listmodel.removeAllElements();//请求之前删除JList对象中的所有内容

dos.writeUTF("请求更新在线人员列表");

dos.flush();

} catch (IOException e1) {

// TODO Auto-generated catch block

//e1.printStackTrace();

System.out.println(e1.getMessage());

相关文档
最新文档