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

📄 clientpad.java

📁 Java编写的简单网络聊天程序
💻 JAVA
字号:
package com.client.connect;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.List;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseAdapter;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import java.awt.*;
public class clientpad implements ActionListener 
{
	public List userList;
	public Label label;
	public Label label1;
	public Panel panel1;
	public Panel panel2;
	public Panel panel3;
	public Panel panel4;
	
	public TextField tfd;
	public TextField ip;
	public TextField name;
	public TextArea tta;
	public Frame frame;
	public Button conButton; 
	public Button nameButton; 
	public Button send; 
	 
	public net Net;
	boolean register=false;
	public clientpad()
	{
		
		frame=new Frame("Client");
		frame.setBackground(Color.LIGHT_GRAY);
		
		userList = new List(10);
		
		userList.setBackground(Color.pink);
		label=new Label("chat");
		label1=new Label("服务器ip");
		
		tfd=new TextField(30);
		ip=new TextField(10);
		name=new TextField(10);
		
		tta=new TextArea();
		
		panel1=new Panel();
		panel1.setLayout(new FlowLayout());
		panel2=new Panel();
		panel2.setLayout(new FlowLayout());
		panel3=new Panel();
		panel3.setLayout(new FlowLayout());
		panel4=new Panel();
		panel4.setLayout(new FlowLayout());
		
		nameButton= new Button("提交");
		conButton= new Button("连接主机");
		send= new Button("发送");
		panel3.add(new Label("聊天室好友在线"));
		panel3.add(new Label("您的昵称"));
		panel3.add(name);
		panel3.add(nameButton);
		panel3.add(label1);
		panel3.add(ip);
		panel3.add(conButton);
		
		panel4.add(userList);
		
		panel1.add(label);
		panel1.add(tfd);
		panel1.add(send);
		
		tta.setBackground(Color.CYAN);
		panel2.add(tta);
		
		frame.setLayout(new BorderLayout());
		frame.add("North",panel3);
		frame.add("East",panel2);
		frame.add("South",panel1);
		frame.add("West",panel4);
	   conButton.addActionListener(this);
	   nameButton.addActionListener(this);
	   send.addActionListener(this);
	   

	   
		frame.addWindowListener(new WindowAdapter()
		{
			public void windowClosing(WindowEvent e)
			{

				//关闭要通知服务器,用户下线
				String ss = "/del "+name.getText()+" ";
				try {
					Net.output.writeUTF(ss);
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
				try {
				Net.client.close();
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
				System.exit(0);
		}});

	     frame.setSize(606,315);
	    frame.setVisible(true);
	    ip.setText("192.168.0.107");
	    frame.isResizable();
	}
	public void actionPerformed(ActionEvent e) 
	{
		String getip;
		if(e.getSource() ==conButton)
		{
			if(register==true)
			{
			getip=ip.getText();
		    Net=new net(getip,this);
			//tta.setText("连接了!");
		    try{
	    		//获取文本域中的字符串
	    		String str="/register ";
	    		str+=name.getText();
	    		//System.out.println(str);
	    	
	    		Net.output.writeUTF(str);

	    	}catch(IOException ef){}
			}
			else
			{
				tta.append("请先注册昵称!\n");
			}
		}
		else if(e.getSource() ==send)
		{
			String peername = userList.getSelectedItem();
			//tta.setText("回车了!");
			//tta.append(peername);
			String Name=name.getText();
			if(peername.equals("[您要对所有人说请选这里]")==false)
			{
			   try{
	    		//获取文本域中的字符串
	    		String str=Name+" "+peername+" ";
	    			str+=tfd.getText();
	    	
	    		tfd.setText(null);
	    	
	    		Net.output.writeUTF(str);
	    		//在文本区中显示文本域中的内容
	    		tta.append("[悄悄话]我对"+peername+"说: "+
	    				str.substring(peername.length()+Name.length()+2)+"\n");
	    	}catch(IOException ef){}
			}
			else 
			{
				//System.out.println("!!!!!!!!");
				String str="/toall "+name.getText()+" ";
				str+=tfd.getText();;
				
	    		try {
					Net.output.writeUTF(str);
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
				
				
				tta.append("[我对所有人说]: ");
				tta.append(tfd.getText());
				tfd.setText(null);
			}
		}
	    else if(e.getSource()==nameButton)
	    {
	    	register=true;
	    	tta.append("您的昵称为:"+name.getText()+"\n");
	    //	System.out.println(name.getText());
	    	nameButton.setEnabled(false);
	    	name.enable(false);
	    //	System.out.println(name.getText());
	    	
	    		
	    }
	}
}


⌨️ 快捷键说明

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