当前位置:编程学习 > JAVA >>

谢了一个java聊天系统的服务器端,可是不能把服务器发给的名字添加到list标中

package LiaoTianSys;

import javax.swing.*;

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.Socket;
import java.net.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;
String [] yonghu={"I","he","she"};
//
List list=new List(25,false);
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();
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();
jp4.add(jb3);
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 {
//new DataOutputStream(lf.socket.getOutputStream()).writeUTF(info);
// DataOutputStream dos=new DataOutputStream(socket.getOutputStream());
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();
try {
dos.writeUTF("name"+msg);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
//向服务器请求更新在线人员列表
jb3.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
try {
dos.writeUTF("请求更新在线人员列表");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
}
public static void main(String[] args) {

new ConversationFrame().kaishi();
}
public void kaishi()
{
try {
socket=new Socket("127.0.0.1",8888);
dos=new DataOutputStream(socket.getOutputStream());
dis=new DataInputStream(socket.getInputStream());
pc pc1=new pc(socket);
pc1.start();

} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

// pc线程类

class pc extends Thread
{ ConversationFrame conver;
Socket socket;
public pc(Socket socket)
{

this.socket=socket;
}

public void run()
{

try {
while(true)
{
String line;

line=ConversationFrame.dis.readUTF();
// 将所有的在线人员昵称发送给JList,并添加到在线人列表中

if(line.startsWith("N"))
{
//line=line.substring(1);
try{

//主要是这段代码有问题 conver.list.add(line.substring(1));
System.out.println(line);
}catch(Exception e)
{
System.out.println(e.getMessage());
}

}
//接受服务器发来的广播聊天信息
else
{
ConversationFrame.jta.append(line+"\n");
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(e.getMessage());
}
}

}

java代码
补充:Java ,  Java相关
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,