資源簡介
自己練手寫的一個小的Java聊天軟件,用到了線程,UI,IO,Socket等技術(shù),需要的同學(xué)可以拿去參考一下

代碼片段和文件信息
import?java.awt.*;
import?java.net.*;
import?java.awt.event.*;
import?java.io.*;
import?javax.swing.*;
public?class?Myclient?extends?Jframe{
private?static?final?long?serialVersionUID?=?-8534220940655745976L;
static?String?name?;
JTextField?jtxfield?=?null;
JTextArea?jtxarea?=?null;
Socket?s?=?null;
DataOutputStream?dos?=?null;
DataInputStream?dis?=?null;
JScrollPane?jsp?=?null;
public?static?void?main?(String?args[]){
name?=?JOptionPane.showInputDialog(“請輸入您的昵稱“);
new?Myclient();
}
public?Myclient(){
super(name);
jtxfield?=?new?JTextField();
jtxarea?=?new?JTextArea();
jsp?=?new?JScrollPane(jtxarea);
jtxarea.setEditable(false);
Container?con?=?this.getContentPane();
con.add(jspBorderLayout.CENTER);
con.add(jtxfieldBorderLayout.SOUTH);
pack();
setSize(300300);
setLocation(500300);
addWindowListener(?new?WindowAdapter(){
public?void?windowClosing(?WindowEvent?e){
??? unconnect();
????System.exit(0);
???}
});
jtxfield.addActionListener(?new?JTXListener()?);
setVisible(true);
connect();
MyThread?mt?=?new?MyThread();?
Thread?t=??new?Thread(mt);
t.start();
}?
????private?class?JTXListener?implements?ActionListener{
public?void?actionPerformed(?ActionEvent?e?){
String?str?=?jtxfield.getText().trim();
????send(?str?);
????jtxfield.setText(?““?)?;
}
}
public?void?send(?String?str?){
try{
dos?=?new?DataOutputStream?(s.getOutputStream());
????dos.writeUTF(?name?+?“?說:“?+?str?);
????dos.flush();
????}catch(?IOException?e?){
???? e.printStackTrace();
????}
}
public?void?connect(){
try{
s?=?new?Socket(“127.0.0.1“9876);
}catch(?UnknownHostException?e?){
e.printStackTrace();
}catch(IOException?e){
e.printStackTrace();
}
}
private?class?MyThread?implements?Runnable{
public?String?recieveFromServer()?{
String?st?=?null;
try?{
dis?=?new?DataInputStream(s.getInputStream());
st?=?dis.readUTF();
}?catch?(IOException?e)?{
}
return?st;
}
public?void?run()?{
while?(true)?{
jtxarea.append(“\n“?+?recieveFromServer()?+?“\n“);
}
}
}
public?void?unconnect(){
try{
dis.close();
dos.close();
s.close();
}catch(?IOException?e?){
e.printStackTrace();
}
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????232??2009-06-25?17:33??ChatProgram\.classpath
?????文件????????387??2009-06-25?17:33??ChatProgram\.project
?????文件????????642??2009-06-30?10:40??ChatProgram\bin\Myclient$1.class
?????文件????????992??2009-06-30?10:40??ChatProgram\bin\Myclient$JTXListener.class
?????文件???????1398??2009-06-30?10:40??ChatProgram\bin\Myclient$MyThread.class
?????文件???????3427??2009-06-30?10:40??ChatProgram\bin\Myclient.class
?????文件???????2491??2009-06-30?10:40??ChatProgram\bin\Server$ServerThread.class
?????文件???????1511??2009-06-30?10:40??ChatProgram\bin\Server.class
?????文件???????2378??2009-06-30?10:40??ChatProgram\src\Myclient.java
?????文件???????1798??2009-06-30?10:40??ChatProgram\src\Server.java
?????目錄??????????0??2009-06-30?10:38??ChatProgram\bin
?????目錄??????????0??2009-06-30?10:38??ChatProgram\src
?????目錄??????????0??2009-06-25?17:33??ChatProgram
-----------?---------??----------?-----??----
????????????????15256????????????????????13
評論
共有 條評論