• 大小: 269KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-12
  • 语言: Java
  • 标签: Java  UI  

资源简介

自己练手写的一个小的Java聊天软件,用到了线程,UI,IO,Socket等技术,需要的同学可以拿去参考一下

资源截图

代码片段和文件信息

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


评论

共有 条评论