資源簡(jiǎn)介
基于socket編寫的聊天室程序,有私聊和群聊功能,限制同名用戶登陸

代碼片段和文件信息
package?chat;
import?java.awt.*;
import?java.awt.event.*;
import?javax.swing.*;
import?javax.swing.border.titledBorder;
import?javax.swing.event.ListDataEvent;
import?javax.swing.event.ListDataListener;
import?java.io.*;
import?java.net.Socket;
import?java.util.HashMap;
import?java.util.Map;
import?java.util.StringTokenizer;
public?class?Client?{
private?Jframe?frame;
private?JTextField?txt_port;
private?JTextField?txt_hostIp;
private?JTextField?txt_name;
private?JButton?btn_start;
private?JButton?btn_stop;
private?JPanel?northPanel;
private?JTextArea?textArea;
private?JScrollPane?rightScroll;
private?JList?userList;
private?JScrollPane?leftScroll;
private?JSplitPane?centerSplit;
private?JComboBox?comboBox;
private?JButton?btn_send;
private?JPanel?pane;
private?JTextField?textField;
private?JPanel?southPanel;
private?DefaultListModel?listModel;
private?boolean?isConnected?=?false;//初始狀態(tài)為”未連接“
private?Socket?socket;
private?PrintWriter?writer;???????//輸出流
private?BufferedReader?reader;????//輸入流
private?MessageThread?messageThread;//?負(fù)責(zé)接收消息的線程
private?Map?onLineUsers?=?new?HashMap();//?所有在線用戶
//?執(zhí)行發(fā)送
public?void?send()?{
if?(!isConnected)?{????????????//如果沒連接服務(wù)器則報(bào)錯(cuò)
JOptionPane.showMessageDialog(frame?“還沒有連接服務(wù)器,無法發(fā)送消息!“?“錯(cuò)誤“
JOptionPane.ERROR_MESSAGE);
return;
}
String?message?=?textField.getText().trim();??????//發(fā)送消息
if?(message?==?null?||?message.equals(““))?{
JOptionPane.showMessageDialog(frame?“消息不能為空!“?“錯(cuò)誤“
JOptionPane.ERROR_MESSAGE);
return;
}
sendMessage(frame.gettitle()?+?“@“?+?comboBox.getSelectedItem()?+?“@“?+?message);//發(fā)送的消息為客戶機(jī)名+message
textArea.append(frame.gettitle()+“對(duì)“+comboBox.getSelectedItem()+“說:“+“\n“+message+“\n“);
textField.setText(null);//發(fā)送完消息后清空發(fā)送框
}
//?構(gòu)造方法
public?Client()?{
textArea?=?new?JTextArea();
textArea.setEditable(false);
textArea.setForeground(Color.blue);
textArea.setFont(new?Font(“楷體“Font.PLAIN15));
textField?=?new?JTextField();
txt_port?=?new?JTextField(“8888“);//端口
txt_hostIp?=?new?JTextField(“127.0.0.1“);//ip地址
txt_name?=?new?JTextField(“a“);//用戶名
btn_start?=?new?JButton(“連接“);//連接按鈕
btn_stop?=?new?JButton(“斷開“);//斷開按鈕
btn_send?=?new?JButton(“發(fā)送“);//發(fā)送按鈕
????listModel?=?new?DefaultListModel();//
userList?=?new?JList(listModel);//用戶列表
northPanel?=?new?JPanel();
northPanel.setLayout(new?GridLayout(1?8));
northPanel.add(new?JLabel(“服務(wù)器端口“));
northPanel.add(txt_port);
northPanel.add(new?JLabel(“服務(wù)器IP“));
northPanel.add(txt_hostIp);
northPanel.add(new?JLabel(“用戶名“));
northPanel.add(txt_name);
northPanel.add(btn_start);
northPanel.add(btn_stop);
northPanel.setBorder(new?titledBorder(“設(shè)置“));
rightScroll?=?new?JScrollPane(textArea);
rightScroll.setBorder(new?titledBorder(“消息顯示區(qū)“));//消息顯示區(qū)
leftScroll?=?new?JScrollPane(userList);
leftScroll.setBorder(ne
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????232??2010-02-04?18:05??chatbox\.classpath
?????文件????????383??2013-01-10?16:49??chatbox\.project
?????文件????????956??2013-01-10?18:57??chatbox\bin\chat\Client$1.class
?????文件????????626??2013-01-10?18:57??chatbox\bin\chat\Client$2.class
?????文件????????623??2013-01-10?18:57??chatbox\bin\chat\Client$3.class
?????文件???????2221??2013-01-10?18:57??chatbox\bin\chat\Client$4.class
?????文件???????1753??2013-01-10?18:57??chatbox\bin\chat\Client$5.class
?????文件????????748??2013-01-10?18:57??chatbox\bin\chat\Client$6.class
?????文件???????1363??2013-01-10?18:57??chatbox\bin\chat\Client$7.class
?????文件???????4382??2013-01-10?18:57??chatbox\bin\chat\Client$MessageThread.class
?????文件???????9738??2013-01-10?18:57??chatbox\bin\chat\Client.class
?????文件???????3321??2012-03-06?20:11??chatbox\bin\chat\msn.png
?????文件????????955??2013-01-10?18:29??chatbox\bin\chat\Server$1.class
?????文件????????736??2013-01-10?18:29??chatbox\bin\chat\Server$2.class
?????文件????????623??2013-01-10?18:29??chatbox\bin\chat\Server$3.class
?????文件????????626??2013-01-10?18:29??chatbox\bin\chat\Server$4.class
?????文件???????2498??2013-01-10?18:29??chatbox\bin\chat\Server$5.class
?????文件???????1720??2013-01-10?18:29??chatbox\bin\chat\Server$6.class
?????文件???????4977??2013-01-10?18:29??chatbox\bin\chat\Server$ClientThread.class
?????文件???????2993??2013-01-10?18:29??chatbox\bin\chat\Server$ServerThread.class
?????文件???????8204??2013-01-10?18:29??chatbox\bin\chat\Server.class
?????文件????????956??2013-01-10?19:01??chatbox\bin\chat\User.class
?????文件??????13730??2013-01-11?08:29??chatbox\src\chat\Client.java
?????文件???????3321??2012-03-06?20:11??chatbox\src\chat\msn.png
?????文件??????14668??2013-01-10?15:52??chatbox\src\chat\Server.java
?????文件????????509??2013-01-10?19:01??chatbox\src\chat\User.java
?????文件??????31434??2013-01-11?08:28??Client.jar
?????文件??????31433??2013-01-10?22:30??Server.jar
?????目錄??????????0??2013-01-11?20:39??chatbox\bin\chat
?????目錄??????????0??2013-01-11?20:39??chatbox\src\chat
............此處省略6個(gè)文件信息
評(píng)論
共有 條評(píng)論