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

📄 achatframe.java

📁 这是一个个人编写的在线聊天程序。是用JAVA语言编写的
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.lang.*;
import java.net.*;
import java.io.*;
import javax.swing.event.*;
import java.awt.geom.*;
class AChatPanel extends JPanel
{
	JMenuBar mb;//菜单栏
	JMenu m1,m2,m3;
	JMenuItem mi1,mi2,mi3,mi4,mi5,mi6,mi7,mi8,mi9,mi10,mi11,mi12;	

	AMainPanel A;//登录界面
	BChatPanel B;//聊天室界面

	CardLayout CL;

	AChatPanel()
	{
		mb=new JMenuBar();
		mb.setBackground(new Color(27,111,160));
		m1=new JMenu("文件");
		m1.setBackground(new Color(27,111,160));
		m1.setForeground(new Color(229,229,229));
		m1.setFont(new Font("楷体_GB2312",Font.PLAIN,12));
		m2=new JMenu("操作");
		m2.setEnabled(false);
		m2.setBackground(new Color(27,111,160));
		m2.setForeground(new Color(229,229,229));
		m2.setFont(new Font("楷体_GB2312",Font.PLAIN,12));
		m3=new JMenu("帮助");
		m3.setBackground(new Color(27,111,160));
		m3.setForeground(new Color(229,229,229));
		m3.setFont(new Font("楷体_GB2312",Font.PLAIN,12));
		mb.add(m1);
		mb.add(m2);
		mb.add(m3);
		mi1=new JMenuItem("重登");
		mi1.setBackground(new Color(27,111,160));
		mi1.setForeground(new Color(229,229,229));
		mi1.setFont(new Font("楷体_GB2312",Font.PLAIN,12));
		mi2=new JMenuItem("注册");
		mi2.setBackground(new Color(27,111,160));
		mi2.setForeground(new Color(229,229,229));
		mi2.setFont(new Font("楷体_GB2312",Font.PLAIN,12));
		mi3=new JMenuItem("退出");
		mi3.setBackground(new Color(27,111,160));
		mi3.setForeground(new Color(229,229,229));
		mi3.setFont(new Font("楷体_GB2312",Font.PLAIN,12));
		mi4=new JMenuItem("默认设置");
		mi4.setBackground(new Color(27,111,160));
		mi4.setForeground(new Color(229,229,229));
		mi4.setFont(new Font("楷体_GB2312",Font.PLAIN,12));
		mi5=new JMenuItem("刷新屏幕");
		mi5.setBackground(new Color(27,111,160));
		mi5.setForeground(new Color(229,229,229));
		mi5.setFont(new Font("楷体_GB2312",Font.PLAIN,12));
		mi6=new JMenuItem("寻找好友");
		mi6.setBackground(new Color(27,111,160));
		mi6.setForeground(new Color(229,229,229));
		mi6.setFont(new Font("楷体_GB2312",Font.PLAIN,12));
		mi7=new JMenuItem("屏蔽发言");
		mi7.setBackground(new Color(27,111,160));
		mi7.setForeground(new Color(229,229,229));
		mi7.setFont(new Font("楷体_GB2312",Font.PLAIN,12));
		mi8=new JMenuItem("取消屏蔽");
		mi8.setBackground(new Color(27,111,160));
		mi8.setForeground(new Color(229,229,229));
		mi8.setFont(new Font("楷体_GB2312",Font.PLAIN,12));
		mi9=new JMenuItem("暂时离开");
		mi9.setBackground(new Color(27,111,160));
		mi9.setForeground(new Color(229,229,229));
		mi9.setFont(new Font("楷体_GB2312",Font.PLAIN,12));
		mi10=new JMenuItem("我要回来");
		mi10.setBackground(new Color(27,111,160));
		mi10.setForeground(new Color(229,229,229));
		mi10.setFont(new Font("楷体_GB2312",Font.PLAIN,12));
		mi11=new JMenuItem("帮助主题");
		mi11.setBackground(new Color(27,111,160));
		mi11.setForeground(new Color(229,229,229));
		mi11.setFont(new Font("楷体_GB2312",Font.PLAIN,12));
		mi12=new JMenuItem("关于聊天室");
		mi12.setBackground(new Color(27,111,160));
		mi12.setForeground(new Color(229,229,229));
		mi12.setFont(new Font("楷体_GB2312",Font.PLAIN,12));
		
		m1.add(mi1);
		m1.add(mi2);
		m1.add(mi3);
		m2.add(mi4);
		m2.add(mi5);
		m2.add(mi6);
		m2.add(mi7);
		m2.add(mi8);
		m2.add(mi9);
		m2.add(mi10);
		m3.add(mi11);
		m3.add(mi12);

		A=new AMainPanel();
		B=new BChatPanel();
		
		setLayout(CL=new CardLayout());
			
		add("first",A);
		add("second",B);		
	}	
}
class AChatFrame extends JFrame implements ActionListener,MouseListener,FocusListener
{
	static int i=1;//与聊天室发送按钮图片的更改有关
	static int x=0;//设置表情图片的名字
	static String f="宋体";//设置字体

	FChatUser fcu;

	AChatPanel C;
	AChatFrame(String a,FChatUser f)
	{			
		fcu=f;	

		C=new AChatPanel();
		getContentPane().add(C);
		setJMenuBar(C.mb);

		C.A.B.Login.addActionListener(this);//登录框的登录按钮
		C.A.B.Reset.addActionListener(this);//登录框的清空按钮
		C.A.B.Exit.addActionListener(this);//登录框的退出按钮
		C.A.B.Regist.addActionListener(this);//登录框的注册按钮
		C.A.B.Password.addActionListener(this);//登录框的忘记密码按钮

		C.A.B.Reset.addMouseListener(this);
		C.A.B.Login.addMouseListener(this);
		C.A.B.Exit.addMouseListener(this); 
		C.A.B.Regist.addMouseListener(this);	
		C.A.B.Password.addMouseListener(this);

		C.B.B.M.Help.addMouseListener(this);//聊天室的帮助主题按钮
		C.B.B.M.LookFor.addMouseListener(this);//聊天室的寻找好友按钮
		C.B.B.M.Reset.addMouseListener(this);//聊天室的刷新屏幕按钮
		C.B.B.M.Stop.addMouseListener(this);//聊天室的屏蔽用户按钮
		C.B.B.M.Recieve.addMouseListener(this);//聊天室的取消屏蔽按钮
		C.B.B.M.Leave.addMouseListener(this);//聊天室的暂时离开按钮
		C.B.B.M.Return.addMouseListener(this);//聊天室的我要回来按钮
		C.B.B.M.Exit.addMouseListener(this);//聊天室的退出聊天按钮
		C.B.B.S.Press.addMouseListener(this);//聊天室的表情按钮
		C.B.B.S.Send.addMouseListener(this);//聊天室的发送按钮
		C.B.B.F.press.addMouseListener(this);//聊天室的表情选择按钮
		C.B.M.L.All.addMouseListener(this);//聊天室的所有人按钮

		C.mi1.addActionListener(this);//菜单按钮
		C.mi2.addActionListener(this);
		C.mi3.addActionListener(this);
		C.mi4.addActionListener(this);
		C.mi5.addActionListener(this);
		C.mi6.addActionListener(this);
		C.mi7.addActionListener(this);
		C.mi8.addActionListener(this);
		C.mi9.addActionListener(this);
		C.mi10.addActionListener(this);
		C.mi11.addActionListener(this);
		C.mi12.addActionListener(this);
		C.B.B.F.JB.addActionListener(this);//改变背景组合框
		C.B.B.F.color.addActionListener(this);//改变字体颜色按钮
		C.B.B.F.font.addActionListener(this);//改变字体按钮
		C.B.B.F.press.addActionListener(this);//改变表情按钮
		C.B.B.S.Send.addActionListener(this);//发送消息按钮

		C.B.M.L.U.UserList.addFocusListener(this);//用户列表按钮

		/*C.B.B.S.T1.addKeyListener(new KeyAdapter()
		{
			public void keyTyped(KeyEvent e)
			{
				if((int)e.getKeyChar()==10)
				{}
			}
		}
		);*/

		//关闭聊天室窗口的事件
		addWindowListener(new WindowAdapter()
     		{
        		 public void windowClosing(WindowEvent e)
         		{
				try
				{
           				System.out.println("Close Chat!!");
           				fcu.logout();//调用FChatUser类中的logout()方法
            				System.exit(0);
				}
				catch(NullPointerException E)
				{
					dispose();
				}
         		}
      		});	 	   
	
		setSize(431,511);
		setResizable(false);

		//弹出窗口的位置设定在屏幕中央
		Toolkit TK = Toolkit.getDefaultToolkit();
        	Dimension Size = TK.getScreenSize();
       		this.setBounds((Size.width-this.getSize().width)/2,
		(Size.height-this.getSize().height)/2,
            	this.getSize().width,this.getSize().height);

		show();
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	public void focusLost(FocusEvent e)//用户列表失去聚焦的事件(用于用户选择私聊对象)
	{
		try
		{
			Object Obj=e.getSource();
			if(Obj==C.B.M.L.U.UserList)
			{
				String ToUser=C.B.M.L.U.UserList.getSelectedValue().toString();
				C.B.B.S.T2.setText("");
				C.B.B.S.T2.setText(ToUser);
			}
		}
		catch(NullPointerException E)
		{}
	}
	public void focusGained(FocusEvent e)
	{}
	
	public void mousePressed(MouseEvent e)//当按钮被按下时改变按钮图片(所有的按钮只要被选中,按下都会更换图片,下同)
	{
		Object Obj=e.getSource();
		if(Obj==C.B.M.L.All)
			C.B.M.L.All.setForeground(new Color(255,0,0));
		if(Obj==C.A.B.Reset)
			C.A.B.Reset.setIcon(new ImageIcon("Reset3.jpg"));
		if(Obj==C.A.B.Login)
			C.A.B.Login.setIcon(new ImageIcon("Login3.jpg"));
		if(Obj==C.A.B.Exit)
			C.A.B.Exit.setIcon(new ImageIcon("Exit3.jpg"));
		if(Obj==C.A.B.Regist)
			C.A.B.Regist.setIcon(new ImageIcon("Regist3.jpg"));
		if(Obj==C.A.B.Password)
			C.A.B.Password.setIcon(new ImageIcon("Password3.jpg"));
		if(Obj==C.B.B.M.Help)
			C.B.B.M.Help.setIcon(new ImageIcon("BHelp3.jpg"));
		if(Obj==C.B.B.M.LookFor)
			C.B.B.M.LookFor.setIcon(new ImageIcon("BLookFor3.jpg"));
		if(Obj==C.B.B.M.Reset)
		{
			C.B.B.M.Reset.setIcon(new ImageIcon("BReset3.jpg"));
			C.B.M.T.TA.setBackground(new Color(255,255,255));
			C.B.M.T.TB.setBackground(new Color(255,255,255));
		}
		if(Obj==C.B.B.M.Stop)
			C.B.B.M.Stop.setIcon(new ImageIcon("BStop3.jpg"));
		if(Obj==C.B.B.M.Recieve)
			C.B.B.M.Recieve.setIcon(new ImageIcon("BRecieve3.jpg"));
		if(Obj==C.B.B.M.Leave)
			C.B.B.M.Leave.setIcon(new ImageIcon("BLeave3.jpg"));
		if(Obj==C.B.B.M.Return)
			C.B.B.M.Return.setIcon(new ImageIcon("BReturn3.jpg"));
		if(Obj==C.B.B.M.Exit)
			C.B.B.M.Exit.setIcon(new ImageIcon("BExit3.jpg"));
		if(Obj==C.B.B.S.Send)
		{
			if(i==1)
			C.B.B.S.Send.setIcon(new ImageIcon("BSend3.jpg"));
			if(i==2)
			C.B.B.S.Send.setIcon(new ImageIcon("BSend3.jpg"));
			if(i==3)
			C.B.B.S.Send.setIcon(new ImageIcon("BSend6.jpg"));
			if(i==4)
			C.B.B.S.Send.setIcon(new ImageIcon("BSend6.jpg"));
		}
	}
	public void mouseReleased(MouseEvent e)
	{
		Object Obj=e.getSource();
		if(Obj==C.B.M.L.All)
			C.B.M.L.All.setForeground(new Color(0,0,0));
		if(Obj==C.A.B.Reset)
			C.A.B.Reset.setIcon(new ImageIcon("Reset1.jpg"));
		if(Obj==C.A.B.Login)
			C.A.B.Login.setIcon(new ImageIcon("Login1.jpg"));
		if(Obj==C.A.B.Exit)
			C.A.B.Exit.setIcon(new ImageIcon("Exit1.jpg"));
		if(Obj==C.A.B.Regist)
			C.A.B.Regist.setIcon(new ImageIcon("Regist1.jpg"));
		if(Obj==C.A.B.Password)
			C.A.B.Password.setIcon(new ImageIcon("Password1.jpg"));
		if(Obj==C.B.B.M.Help)
			C.B.B.M.Help.setIcon(new ImageIcon("BHelp1.jpg"));
		if(Obj==C.B.B.M.LookFor)
			C.B.B.M.LookFor.setIcon(new ImageIcon("BLookFor1.jpg"));
		if(Obj==C.B.B.M.Reset)
		{
			C.B.B.M.Reset.setIcon(new ImageIcon("BReset1.jpg"));
			if(i==1)
			{
				C.B.M.T.TA.setBackground(new Color(225,247,255));
				C.B.M.T.TB.setBackground(new Color(225,247,255));
			}
			if(i==2)
			{
				C.B.M.T.TA.setBackground(new Color(219,247,241));
				C.B.M.T.TB.setBackground(new Color(219,247,241));
			}
			if(i==3)
			{
				C.B.M.T.TA.setBackground(new Color(245,245,220));
				C.B.M.T.TB.setBackground(new Color(245,245,220));
			}
			if(i==4)
			{
				C.B.M.T.TA.setBackground(new Color(246,230,238));
				C.B.M.T.TB.setBackground(new Color(246,230,238));
			}
		}
		if(Obj==C.B.B.M.Stop)
			C.B.B.M.Stop.setIcon(new ImageIcon("BStop1.jpg"));
		if(Obj==C.B.B.M.Recieve)
			C.B.B.M.Recieve.setIcon(new ImageIcon("BRecieve1.jpg"));
		if(Obj==C.B.B.M.Leave)
			C.B.B.M.Leave.setIcon(new ImageIcon("BLeave1.jpg"));
		if(Obj==C.B.B.M.Return)
			C.B.B.M.Return.setIcon(new ImageIcon("BReturn1.jpg"));
		if(Obj==C.B.B.M.Exit)
			C.B.B.M.Exit.setIcon(new ImageIcon("BExit1.jpg"));
		if(Obj==C.B.B.S.Send)
		{
			if(i==1)
			C.B.B.S.Send.setIcon(new ImageIcon("BSend1.jpg"));
			if(i==2)
			C.B.B.S.Send.setIcon(new ImageIcon("BSend1.jpg"));
			if(i==3)
			C.B.B.S.Send.setIcon(new ImageIcon("BSend4.jpg"));
			if(i==4)
			C.B.B.S.Send.setIcon(new ImageIcon("BSend4.jpg"));
		}
	}
	public void mouseEntered(MouseEvent e)
	{
		//Toolkit tk=Toolkit.getDefaultToolkit();
		//Image img=tk.getImage("1.jpg");
		//Cursor dy=tk.createCustomCursor(img,new Point(0,0),"dy stick");
		//setCursor(dy);

		Object Obj=e.getSource();
		if(Obj==C.B.M.L.All)
			C.B.M.L.All.setForeground(new Color(236,118,0));
		if(Obj==C.A.B.Reset)
			C.A.B.Reset.setIcon(new ImageIcon("Reset2.jpg"));
		if(Obj==C.A.B.Login)
			C.A.B.Login.setIcon(new ImageIcon("Login2.jpg"));
		if(Obj==C.A.B.Exit)
			C.A.B.Exit.setIcon(new ImageIcon("Exit2.jpg"));
		if(Obj==C.A.B.Regist)
			C.A.B.Regist.setIcon(new ImageIcon("Regist2.jpg"));
		if(Obj==C.A.B.Password)
			C.A.B.Password.setIcon(new ImageIcon("Password2.jpg"));
		if(Obj==C.B.B.M.Help)
			C.B.B.M.Help.setIcon(new ImageIcon("BHelp2.jpg"));
		if(Obj==C.B.B.M.LookFor)
			C.B.B.M.LookFor.setIcon(new ImageIcon("BLookFor2.jpg"));
		if(Obj==C.B.B.M.Reset)
			C.B.B.M.Reset.setIcon(new ImageIcon("BReset2.jpg"));
		if(Obj==C.B.B.M.Stop)
			C.B.B.M.Stop.setIcon(new ImageIcon("BStop2.jpg"));
		if(Obj==C.B.B.M.Recieve)
			C.B.B.M.Recieve.setIcon(new ImageIcon("BRecieve2.jpg"));
		if(Obj==C.B.B.M.Leave)
			C.B.B.M.Leave.setIcon(new ImageIcon("BLeave2.jpg"));
		if(Obj==C.B.B.M.Return)
			C.B.B.M.Return.setIcon(new ImageIcon("BReturn2.jpg"));
		if(Obj==C.B.B.M.Exit)
			C.B.B.M.Exit.setIcon(new ImageIcon("BExit2.jpg"));
		if(Obj==C.B.B.S.Send)
		{
			if(i==1)
			C.B.B.S.Send.setIcon(new ImageIcon("BSend2.jpg"));
			if(i==2)
			C.B.B.S.Send.setIcon(new ImageIcon("BSend2.jpg"));
			if(i==3)
			C.B.B.S.Send.setIcon(new ImageIcon("BSend5.jpg"));
			if(i==4)
			C.B.B.S.Send.setIcon(new ImageIcon("BSend5.jpg"));
		}
		if(Obj==C.B.B.F.press)
		{
			C.B.B.F.press.setIcon(new ImageIcon("BQ2.jpg"));
		}
	}
	public void mouseExited(MouseEvent e)
	{
		Object Obj=e.getSource();
		if(Obj==C.B.M.L.All)
			C.B.M.L.All.setForeground(new Color(0,0,0));
		if(Obj==C.A.B.Reset)
			C.A.B.Reset.setIcon(new ImageIcon("Reset1.jpg"));
		if(Obj==C.A.B.Login)
			C.A.B.Login.setIcon(new ImageIcon("Login1.jpg"));
		if(Obj==C.A.B.Exit)
			C.A.B.Exit.setIcon(new ImageIcon("Exit1.jpg"));
		if(Obj==C.A.B.Regist)
			C.A.B.Regist.setIcon(new ImageIcon("Regist1.jpg"));

⌨️ 快捷键说明

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