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

📄 chatprogram.java

📁 一个简单的聊天室
💻 JAVA
字号:
package com.briup.dasheji;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;import java.net.*;public class ChatProgram{	public static void main(String[] args){		try{			InitGUI mygui = new InitGUI();		}catch(Exception e){e.printStackTrace();}	}}class InitGUI{	JRadioButton[] jrb = new JRadioButton[2];	JButton jb1,jb2,jb3;	Runner runner;		public TextArea ta = new TextArea();	public TextArea tb = new TextArea();	public MulticastSocket msocket = null;	public DatagramPacket packet = null;	public DatagramSocket socket = null;	public InitGUI(){		//大致轮廓		JFrame jf = new JFrame("简单聊天室");		jf.setBounds(100,100,350,450);		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		Container c = jf.getContentPane();		c.setLayout(new BorderLayout());		//图形头部		//JRadioButton[] jrb = new JRadioButton[2];		jrb[0] = new JRadioButton("服务器端");		jrb[1] = new JRadioButton("客户端");		jrb[0].setEnabled(true);		jrb[1].setEnabled(false);		JPanel p1 = new JPanel(new FlowLayout());		p1.add(jrb[0]);		p1.add(jrb[1]);		c.add(p1,BorderLayout.NORTH);		//图形中部		JPanel p2 = new JPanel();		ta = new TextArea(12,40);		p2.add(ta,BorderLayout.NORTH);		c.add(p2,BorderLayout.CENTER);		//图形底部		JPanel p3 = new JPanel();		p3.setLayout(new BorderLayout());		JPanel p31 = new JPanel();		tb = new TextArea(6,40);		p31.add(tb,BorderLayout.NORTH);		p3.add(p31,BorderLayout.CENTER);		JPanel p32 = new JPanel();		p32.setLayout(new FlowLayout());		jb1 = new JButton("开始");		jb2 = new JButton("发送");		jb3 = new JButton("结束");		jb1.setEnabled(false);		jb2.setEnabled(false);		jb3.setEnabled(true);		p32.add(jb1);		p32.add(jb2);		p32.add(jb3);		p3.add(p32,BorderLayout.SOUTH);		c.add(p3,BorderLayout.SOUTH);		jf.setVisible(true);			jrb[0].addActionListener(new AllListener());			jrb[1].addActionListener(new AllListener());		jb1.addActionListener(new AllListener());		jb2.addActionListener(new AllListener());		jb3.addActionListener(new AllListener());	}	class AllListener implements ActionListener{		public void actionPerformed(ActionEvent e){			if(e.getSource()==jrb[0]){				jrb[0].setEnabled(false);				runner = new Runner();				ta.append(" 服务器已连接 \n");				jrb[1].setEnabled(true);			}			if(e.getSource()==jrb[1]){				jrb[1].setEnabled(false);				ta.append(" 客户端已连接 \n");				jb1.setEnabled(true);			}			if(e.getSource()==jb1){				jb1.setEnabled(false);				jb2.setEnabled(true);			}			if(e.getSource()==jb2){				String str = tb.getText();				byte[] buffer = str.getBytes();				try{					packet = new DatagramPacket(buffer,buffer.length,InetAddress.getByName("228.7.6.5"),10000);					socket = new DatagramSocket();					socket.send(packet);					tb.setText(" ");									}catch(Exception ie){}				finally{					if(socket!= null)try{socket.close();}catch(Exception ee){}				}			}			if(e.getSource()==jb3)System.exit(1);		}	}	class Runner implements Runnable{		public Runner(){			new Thread(this).start();		}		public void run(){			boolean run = true;			InetAddress group = null;			try{				group = InetAddress.getByName("228.7.6.5");				msocket = new MulticastSocket(10000);				msocket.joinGroup(group);				while(run){					byte[] buffer = new byte[128];					packet = new DatagramPacket(buffer,buffer.length);					msocket.receive(packet);					if(packet.getAddress().getHostAddress().equals("192.168.3.40" ) )						ta.append("闫正强:"); else						 if(packet.getAddress().getHostAddress().equals("192.168.2.24" ) )						 ta.append("张林柱:");else 					  if(packet.getAddress().getHostAddress().equals("192.168.3.125" ))						  ta.append("孔令峰:"); else 					   if(packet.getAddress().getHostAddress().equals("192.168.3.88" ))						   ta.append("吴翠:"); else 					    if(packet.getAddress().getHostAddress().equals("192.168.2.183") ) 						    ta.append("韩国青:"); else 					     if(packet.getAddress().getHostAddress().equals("192.168.2.2" ))						     ta.append("郝文斌:"); else 						 if(packet.getAddress().getHostAddress().equals("192.168.3.150") ) 						      ta.append("杜得璞:"); else 						  if(packet.getAddress().getHostAddress().equals("192.168.4.43" )) 						       ta.append("卢华萍:"); else	 						   if(packet.getAddress().getHostAddress().equals("192.168.3.84" )) 						        ta.append("许蒙:"); else 						    if(packet.getAddress().getHostAddress().equals("192.168.3.54" )) 						         ta.append("梦琪:"); else							if(!(packet.getAddress().getHostAddress().equals("228.7.6.5")))							   ta.append("其他人说:"); else							    ta.append("我的发言:");									ta.append(" " + new String(packet.getData()).trim() + "\n");								}				Thread.sleep(500);			}catch(Exception e){e.printStackTrace();}			finally{				if(socket!=null)try{					msocket.leaveGroup(group);					msocket.close();					}catch(Exception e){}			}			}	}}

⌨️ 快捷键说明

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