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

📄 chatroomclientframe.java

📁 java实现的聊天程序
💻 JAVA
字号:
package MyChatRoom;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

import javax.swing.*;

public class ChatRoomClientFrame {
	private JFrame jf;
	private JTextArea jta;
	private JTextField jtf;
	private JButton jb;
	private JLabel label;
	private String name;
	
	public ChatRoomClientFrame() {
		jf = new JFrame("聊天室客户端v1.0");
		String serverIp = JOptionPane.showInputDialog(jf,"请输入IP:");
		int port = Integer.parseInt(JOptionPane.showInputDialog(jf,"请输入端口号:"));
		name = JOptionPane.showInputDialog(jf,"请输入姓名:");
		ChatRoomClient.init(serverIp, port);
		
		label = new JLabel(name+":");
		jb = new JButton("发送");
		jtf = new JTextField(20);
		jta = new JTextArea(20,40);
		new RecieveMessageThread().start();
		init();
		addEventHandle();
		
	}
	
	public void init() {
		jf.setLayout(new BorderLayout());
		JScrollPane jsp = new JScrollPane(jta);
		jf.add(jsp,BorderLayout.CENTER);
		JPanel jp = new JPanel();
		jp.add(label);
		jp.add(jtf);
		jp.add(jb);
		jf.add(jp,BorderLayout.SOUTH);
	}
	
	public void addEventHandle() {
		jb.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				ChatRoomClient.pw.println(label.getText()+jtf.getText());
				ChatRoomClient.pw.flush();
			}
		});
		
		jf.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				int op = JOptionPane.showConfirmDialog(jf, "退出程序将关闭连接,确定退出?","退出",JOptionPane.YES_NO_OPTION);
				if(op==JOptionPane.YES_OPTION) {
					ChatRoomClient.pw.println("%exit%"+name);
					ChatRoomClient.pw.flush();
				}
				try {
					ChatRoomClient.s.close();
				} catch (IOException e1) {
					e1.printStackTrace();
				}
			}

		});
	}
	public void showMe() {
		jf.pack();
		jf.setVisible(true);
		jf.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
	}
	
	class RecieveMessageThread extends Thread{
		public void run() {
			while(true) {
				String str;
				try {
					str = ChatRoomClient.br.readLine();
					jta.append(str+"\n");
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
}	

⌨️ 快捷键说明

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