⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chatclient0.java

📁 一个很好的JAVA聊天室系统 可以在课堂里实践并且进行聊天
💻 JAVA
字号:
import java.io.*;
import java.net.*;
import java.awt.*;
import java.applet.*;

public class chatclient extends Applet {
    public static final int DEFAULT_PORT = 6001;
    public Socket socket;
    private Thread reader, writer;
    public TextArea OutputArea;
    public TextField InputArea;
    public PrintStream out;
    public String Name;
    public UserInfoFrame NameFrame;

    public void init() {
        OutputArea = new TextArea(20,45);
        NameFrame = new UserInfoFrame(this);
	add(new Label("Internet Turbo Chat"));
	add(OutputArea);
	add(InputArea);
	resize(400,400);

        try {
             socket = new Socket(getDocumentBase().getHost(),DEFAULT_PORT);
             reader = new Reader(this, OutputArea);
             out    = new PrintStream(socket.getOutputStream());
             reader.setPriority(3);
             reader.start();
            }
        catch (IOException e) { System.err.println(e);}
     }

    public boolean handleEvent (Event evt) {
	if (evt.target == InputArea)
	   {
	    char c = (char) evt.key;
	    if (c == '\n') {
		String InLine = InputArea.getText();
		out.println(Name + '>' + InLine);
		InputArea.setText("");
		return true;
		}
	    }
	else
	   if (evt.target == NameFrame) {
		Name = (String) evt.arg;
		out.println(Name);
		return true;
		}
        return false;  
    }
    // end of methods of class chatclient

    class Reader extends Thread { // inner class
        protected chatclient client;
	private TextArea OutputArea;
	
        public Reader(chatclient c, TextArea OutputArea) { // constructor
		super("chatclient Reader");
		this.client = c;
		this.OutputArea = OutputArea;
               }
	public void run() {
		DataInputStream in = null;
		String line;
		try {
		     in = new DataInputStream(client.socket.getInputStream());
		     while(true)
                        {
                         line = in.readLine();
			 if (line == null) {
				OutputArea.setText("Server closed connection");
				break;
				}
                          OutputArea.append(line + '\n');
                        }  // end of while
                     } // end of try
                catch (IOException e) { System.out.println("Reader:" + e); }
                finally { 
                          try { if (in != null) in.close(); }
                          catch (IOException e) { System.exit(0);}
                         }
               } // end of run()
    }  // end of class Reader

    class UserInfoFrame extends Frame {  // inner class
        public TextField UserNameField;
	public Applet parent;

	public UserInfoFrame(Applet parent) {  // constructor
		UserNameField = new TextField(10);
		this.parent = parent;
		add("North",new Label ("Please enter your name and hit ENTER"));
		add("South",UserNameField);
                setSize(300,100);
		show();
               }
	public boolean KeyDown(Event evt, int key) {
		char c = (char) key;
		if (c == '\n') {
                        Event NewEvent = new Event(this, Event.ACTION_EVENT, UserNameField.getText());
                        parent.postEvent(NewEvent);
			dispose();	
			return true;
		       }
		else
			return false;
               } // end of KeyDown()
    }  // end of class UserInfoFrame

}


     

		
			       
	


			

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -