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

📄 qqchatframe.java

📁 实现多人聊天以及私聊和传文件功能 类似于
💻 JAVA
字号:
package NewQQ;

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.Socket;
import java.util.HashMap;
import javax.swing.*;

public class QQChatFrame {
	JFrame jframe;
	JPanel jp;
	TextArea jta;
	JTextField jtf;
	JComboBox jcb;
	String name;
	ObjectOutputStream sendmsg;
	Socket clientsocket;
	HashMap friends;
	
	public QQChatFrame(String name,ObjectOutputStream sendmsg,HashMap friends,Socket clientsocket){
		this.name = name;
		this.sendmsg = sendmsg;
		this.friends = friends;
	}
	public void creat(){
		class QQClientWindowListener extends WindowAdapter{
			public void windowClosing(WindowEvent e){
				//向服务器发出退出请求
				try {
					QQMessage ffsendmessage = new QQMessage();
					ffsendmessage.setType(6);
					ffsendmessage.setSender(name);
					sendmsg.writeObject(ffsendmessage);
					sendmsg.flush();
				} catch (IOException e1) {}
				jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			}
		}
		class QQClientActionListener implements ActionListener{
			public void actionPerformed(ActionEvent e) {
				Object com = e.getSource();
				if(com instanceof JComboBox){
					JComboBox tempjcb = (JComboBox)com;
					String recver = (String)tempjcb.getSelectedItem();
					tempjcb.setSelectedIndex(0);
					if(!recver.equals("所有人")){
						SingleFrame sf = (SingleFrame)friends.get(recver);
							if(sf==null){
								sf = new SingleFrame(recver,sendmsg,friends,name);
								sf.init();
								friends.put(recver,sf);
								sf.jframe.toFront();
							}
					}
				}
				else{
					QQMessage sendmessage = new QQMessage();
					sendmessage.setType(3);
					sendmessage.setSender(name);
					sendmessage.setMessage(jtf.getText());
					try {
						sendmsg.writeObject(sendmessage);
						sendmsg.flush();
					} catch (IOException e1) {}
					jtf.setText("");
				}
			}
		}
		
		jframe = new JFrame(name);
		jframe.setSize(400,300);
		jta = new TextArea();
		jta.setEditable(false);
		jta.setFocusable(false);
		jp = new JPanel(new FlowLayout());
		jtf = new JTextField(15);
		jcb = new JComboBox();
		jp.add(jcb);
		jp.add(jtf);
		jcb.addItem("所有人");
		jframe.add(jta);
		jframe.add(jp,BorderLayout.SOUTH);
		jframe.addWindowListener(new QQClientWindowListener());
		QQClientActionListener qqclientlistener = new QQClientActionListener();
		jtf.addActionListener(qqclientlistener);
		jcb.addActionListener(qqclientlistener);
		jframe.setVisible(true);
	}
}

⌨️ 快捷键说明

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