xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

資源簡介

(1)用Java圖形用戶界面編寫聊天室服務(wù)器端和客戶端, 支持多個客戶端連接到一個服務(wù)器。每個客戶端能夠輸入賬號。 (2)可以實現(xiàn)群聊(聊天記錄顯示在所有客戶端界面)。 (3)完成好友列表在各個客戶端上顯示。 (4)可以實現(xiàn)私人聊天,用戶可以選擇某個其他用戶,單獨發(fā)送信息。 (5)服務(wù)器能夠群發(fā)系統(tǒng)消息,能夠強行讓某些用戶下線。 (6)客戶端的上線下線要求能夠在其他客戶端上面實時刷新。

資源截圖

代碼片段和文件信息

package?聊天室;
import?java.net.*;
import?java.util.ArrayList;
import?java.io.*;
import?java.awt.*;
import?java.awt.event.*;
import?javax.swing.*;
import?javax.swing.text.DefaultCaret;
public?class?Client?extends?Jframe?implements?RunnableActionListenerItemListener{
private?JTextArea??jta?=?new?JTextArea();
private?JTextField?jtf?=?new?JTextField();
private?JButton?jb=new?JButton(“發(fā)送消息“);
private?List?online?=?new?List();
private?String?nickName;
private?Socket?s?=?null;
private?PrintStream?ps?=?null;
private?BufferedReader?br?=?null;
????private?JScrollPane?jsp=new?JScrollPane(jta);
????private?String?msg?=new?String();
????private?ArrayList?siliaoname=new?ArrayList();
????private?String?msg2?=?new?String();
????private?String?ip;
????private?int?port;
????private?SocketAddress?addr;
????public?void?itemStateChanged(ItemEvent?e)?{
if(e.getSource()==online)
{

}

}
????
public?Client()?throws?Exception{
????jsp.setVerticalScrollBarPolicy(
???? JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
????online.addItemListener(this);
????online.addActionListener(this);
????getContentPane().add(jsp?BorderLayout.CENTER);
getContentPane().add(jtfBorderLayout.SOUTH);
getContentPane().add(onlineBorderLayout.EAST);
jtf.setBackground(Color.WHITE);
jta.setWrapstyleWord(true);
jta.setFont(new?Font(“微軟雅黑“Font.BOLD25));
jtf.setFont(new?Font(“微軟雅黑“Font.BOLD25));
jtf.addActionListener(this);
jta.setEditable(false);
jta.setLineWrap(true);
jb.setBounds(490?0?100?38);
jtf.add(jb);
jb.setVisible(true);
????????jb.addActionListener(this);

DefaultCaret?caret?=?(DefaultCaret)jta.getCaret();//跟著進度條移動
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
this.setSize(600600);

setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
addWindowListener(new?WindowAdapter(){
public?void?windowClosing(WindowEvent?e)?{
int?option=?JOptionPane.showConfirmDialog(
Client.this?“確定退出聊天室??“?“提示?“JOptionPane.YES_NO_OPTION);
if(option==JOptionPane.YES_OPTION)
if(e.getWindow()?==?Client.this)
{try?{
????????ps.println(“EXIT#“+?nickName);

System.exit(0);
}catch(Exception?exit)?{}
}
return?;
}
});

this.setVisible(true);
this.setLocationRelativeTo(null);
ip=“127.0.0.1“;
port=9999;
try?{
nickName?=?JOptionPane.showInputDialog(Client.this“請輸入您的賬號“);
while(nickName.equals(““))?{
JOptionPane.showMessageDialog(
Client.this?“賬號不能為空?“?“錯誤?“JOptionPane.YES_NO_OPTION);
nickName?=?JOptionPane.showInputDialog(Client.this“請輸入您的賬號“);
}
}catch(Exception?e)?{
System.exit(0);
}
try?{
s?=?new?Socket();
addr=new?InetSocketAddress(ipport);
s.connect(addr1000);?
}catch(Exception?e)?{
JOptionPane.showMessageDialog(
Client.this?“服務(wù)器暫未開放?“?“提示?“JOptionPane.YES_NO_OPTION);
System.exit(0);

}

ps?=?new?PrintStream(s.g

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????4503??2019-05-25?09:58??Server.java
?????文件????????7782??2019-05-25?09:58??Client.java

評論

共有 條評論