教育路上

全國站>Java>Java基礎>java在線聊天室chart類的創建
學員需求

java在線聊天室chart類的創建

摘要:java在線聊天室chart類的創建。以下是我們為大家整理的,相信大家閱讀完后肯定有了自己的選擇吧。

2021-06-29 11:53網絡推薦

發布時間:
2021-06-29 11:53
信息來源:
網絡推薦
瀏覽次數:
1706
java在線聊天室chart類的創建

package aaa;
import java.awt.*;
import java.awt.event.*;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;

import javax.swing.*;

public class chart extends JFrame  {
	//定義全局變量或成員變量
	private JButton send=new JButton("發送");
	private JTextArea inputTextArea=new JTextArea(5,50);
	private JTextArea showTextArea=new JTextArea(10,50);
	private JComboBox userlist=new JComboBox();
	private JPanel up=new JPanel();
	private JPanel center=new JPanel();
	private JPanel down=new JPanel();
	private Socket client;
	private InetAddress ips;
	private int ports=8080;
	private String user;
	
	chart(String user){
		this.user=user;
		gui();//圖形
		listion();//第一次連接服務器
		flashuser();//等服務器發信息給客戶
		send();//發送聊天記錄
	}
	
	//圖形界面
	void gui(){
		JFrame f=new JFrame("聊天室");
		f.setSize(800,400);
		f.setLocation(300,200);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setLayout(new BorderLayout());
		f.add(up,BorderLayout.NORTH);
		f.add(down,BorderLayout.SOUTH);
		f.add(center,BorderLayout.CENTER);
		up.add(new JScrollPane(showTextArea));
		showTextArea.setEditable(false);
		center.add(inputTextArea);
		down.add(userlist);
		down.add(send);
		userlist.addItem("所有人");
		f.setVisible(true);
	}
	
	//連接服務器
	void listion(){
		try {
			ips=InetAddress.getByName("127.0.0.1");
			client=new Socket(ips,ports);
			PrintWriter writer = new PrintWriter(client.getOutputStream());
			String a=user+"@@"+"reg";
			writer.println(a);  
	        writer.flush(); 
			
		}catch(Exception e1) {
				e1.printStackTrace();
		}
	}
	
	void flashuser(){	
		new Thread() {	   
			public void run() {
				while(true) {	
					System.out.println(client);
					if(client!=null) {
					    try {
							BufferedReader r = new BufferedReader(new InputStreamReader(client.getInputStream())); 
							String line=r.readLine();
							String[] arr=line.split("@");
							//null@aaaa@userlist
							if(arr[arr.length-1].equals("userlist")) {
								for(String user:arr) {
									if(!user.equals("null")&&!user.equals("userlist")) {
									userlist.addItem(user);	
								    }
								}
							}else if(arr[arr.length-1].equals("群發聊天")) {
									showTextArea.append(arr[0]+arr[1]+"\n");
							}else {
								    showTextArea.append(arr[0]+arr[1]+arr[2]+"\n");
							}
					   }catch(Exception e) {
							e.printStackTrace();
					   }
	               }
	           }
			}
	   }.start();
	}
	
	void send() {
		//發送聊天內容
		send.addActionListener(new ActionListener() { 
			public void actionPerformed(ActionEvent e) {
				try {
					PrintWriter writer = new PrintWriter(client.getOutputStream());
					String a=user+"@"+inputTextArea.getText()+"@"+userlist.getSelectedItem();
					writer.println(a);  
					writer.flush(); 
				} catch (Exception e1) {
					e1.printStackTrace();
				}
			}
		});
	}

	public static void main(String[] args) {
		new chart("zhangsan");

	}

}

上一篇:
java彈窗JDialog對話框
下一篇:
java在線聊天室服務端Server類的創建
標簽:
網友評論
發布評論

訪客的評論 2023/05/29 00:26

文中描述的是準確的嗎,如何報名!

相關推薦
我也來發表評價關閉
我對該內容的評價:
0
評價500
驗證碼: 看不清 換一張
提交 (匿名發布,無須擔心別人知道您的身份)
學校免費發布信息關閉
我們審核后會盡快展示,如有圖片請發郵件到:edu63@foxmail.com

姓      名:

內      容:

手機號碼:

驗  證  碼:  換一張

確認提交
填寫需求信息關閉
我們會根據您的需求匹配并審核留言

姓      名:

意向城市:

留      言:

手機號碼:

驗  證  碼:  換一張

確認提交
糾錯補充本文信息關閉
非常感謝您幫助糾錯補充本文信息


 換一張

確認提交
美女裸体黄网站18禁免费看