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

📄 qqstate.java

📁 IO流的项目好
💻 JAVA
字号:
//状态浮动图标
package myQQ;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class QQState extends JWindow implements ActionListener
{
	QQMainFrame mainF;
	//控制显示位置
	Adom place = new Adom(); 
	Point p; 
	//状态图标--以按钮做载体
	ImageIcon[] ic = new ImageIcon[4];
	JButton jb = new JButton();
	//浮动菜单
	JPopupMenu pMenu = new JPopupMenu();
	JMenuItem[] me = new JMenuItem[4];
	String[] sme = {"上线","隐身","离开","下线"}; 
	ImageIcon[] icme = new ImageIcon[4];
	//编号
	String id;
	//状态数组
	int[] state = {0,2,3,-1};
	//连接线程是否终止
	boolean stop = false;
	
	QQState(QQMainFrame mf)
	{	//传入主界面以控制其显示
		this.setSize(50,50);
		this.mainF = mf;
		this.id = mainF.id;
		p = mainF.getLocation();
		p.x -= 50;
		this.setLocation(p);
		for (int i = 0; i<ic.length; i++)
		{	//初始化图标
			ic[i] = new ImageIcon("QQ/state/"+i+".png");
			icme[i] = new ImageIcon("QQ/state/m"+i+".png");
		}
		for (int i = 0; i<me.length; i++)
		{
			me[i] = new JMenuItem(sme[i]+"    ",icme[i]);
			pMenu.add(me[i]);
			me[i].addActionListener(this);
		}
		Container c = this.getContentPane();
		c.add(jb);
		jb.setIcon(ic[0]);
		//注册鼠标事件
		jb.addMouseListener(new ME());
		mainF.addMouseListener(new ME());
		mainF.jp.addMouseListener(new ME());
		mainF.jb.addMouseListener(new ME());
	//	this.setAlwaysOnTop(true); 1.4JDK不支持
		this.setVisible(true);
	}
	
	class ME extends MouseAdapter
	{	//鼠标事件
		public void mouseEntered(MouseEvent e)
		{	//进入状态图标时显示主界面
			mainF.setVisible(true);
			p = mainF.getLocation();
			p.x -= 50;
			setLocation(p);
		}
		public void mouseExited(MouseEvent e)
		{
			if(e.getSource().equals(mainF))  
			{	//鼠标离开主界面时将其隐藏
				mainF.setVisible(false);
				p = place.setRight(getSize());
				setLocation(p);	
			}
		}
		public void mouseReleased(MouseEvent e)
		{	//弹出浮动菜单
			if(e.getSource().equals(jb))
			{
				pMenu.show(e.getComponent(),e.getX(),e.getY());
			}
		}	
	}
	
	public void actionPerformed(ActionEvent e)
	{	//浮动菜单选择事件
		for (int i = 0; i<me.length; i++)
		{
			if(e.getSource().equals(me[i]))
			{	//改变状态图标
				if(!jb.getIcon().equals(ic[i]))
				{	//状态改变才发送信息至服务器	
					jb.setIcon(ic[i]);
					if(i==0&&stop)
					{
						mainF.client = new QQClient();
						mainF.client.start();
						stop = false;
						me[1].setEnabled(true);
						me[2].setEnabled(true);
					}
					MessType mt = new MessType(id,mainF.sTime,state[i]);
					mainF.client.sendMess(mt);	
					if(i==3)
					{
						mainF.client.stopClient();
						mainF.client = null;
						stop = true;
						me[1].setEnabled(false);
						me[2].setEnabled(false);
					}		
				}
			}
		}
	}
}

⌨️ 快捷键说明

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