第一次写博客,还请大家多多指教
因为最近做了一个关于计算机网络的课程设计,是一个多用户聊天软件,实现过程比较简单,现在就拿来和大家分享一下,如果程序有什么不正确的地方希望大家多多提点意见
谢谢大家
以下是具体实现的程序代码
客户端程序:
1.用户运行的第一个界面,用于设置用户名
Setusername.java
package zhonghui.client;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Setusername extends JFrame{
private JButton jbt = new JButton("进入聊天室");
private JTextField jtfname= new JTextField(8);
public static void main(String[] args) {
new Setusername();
}
public Setusername(){
final JPanel p1 = new JPanel();
p1.setLayout(new BorderLayout());
p1.add(new JLabel("输入用户名"), BorderLayout.WEST);
p1.add(jtfname, BorderLayout.CENTER);
jtfname.setHorizontalAlignment(JTextField.LEFT);
p1.add(jbt, BorderLayout.EAST);
p1.setLayout(new FlowLayout(FlowLayout.LEFT,10,20));
p1.setSize(300, 100);
setLayout(new BorderLayout());
add(p1, BorderLayout.CENTER);
add(new JLabel("欢迎使用多人聊天系统 ,请输入用户名即可进入聊天室 "), BorderLayout.NORTH);
setTitle("多人聊天室 ");
setSize(350, 150);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
jbt.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
String username = jtfname.getText().trim();
if(username.equals("")){
}else{
//关闭设置页面,启动聊天框页面
setVisible(false);
new Client(username);
}
}
}); // Register listener
}
}
2.用户使用的聊天界面类,实现与服务器通信,本客户端连接的IP是127.0.0.1,即只要服务器在本地运行,即可进行通信
Client.java
package zhonghui.client;
import java.io.*;
import java.net.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.TitledBorder;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class Client extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
// 接受消息框
private JTextField jtf = new JTextField();
private String