📄 achatframe.java
字号:
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 + -