?? qqstate.java
字號(hào):
//狀態(tài)浮動(dòng)圖標(biāo)
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;
//狀態(tài)圖標(biāo)--以按鈕做載體
ImageIcon[] ic = new ImageIcon[4];
JButton jb = new JButton();
//浮動(dòng)菜單
JPopupMenu pMenu = new JPopupMenu();
JMenuItem[] me = new JMenuItem[4];
String[] sme = {"上線","隱身","離開","下線"};
ImageIcon[] icme = new ImageIcon[4];
//編號(hào)
String id;
//狀態(tài)數(shù)組
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++)
{ //初始化圖標(biāo)
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]);
//注冊(cè)鼠標(biāo)事件
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
{ //鼠標(biāo)事件
public void mouseEntered(MouseEvent e)
{ //進(jìn)入狀態(tài)圖標(biāo)時(shí)顯示主界面
mainF.setVisible(true);
p = mainF.getLocation();
p.x -= 50;
setLocation(p);
}
public void mouseExited(MouseEvent e)
{
if(e.getSource().equals(mainF))
{ //鼠標(biāo)離開主界面時(shí)將其隱藏
mainF.setVisible(false);
p = place.setRight(getSize());
setLocation(p);
}
}
public void mouseReleased(MouseEvent e)
{ //彈出浮動(dòng)菜單
if(e.getSource().equals(jb))
{
pMenu.show(e.getComponent(),e.getX(),e.getY());
}
}
}
public void actionPerformed(ActionEvent e)
{ //浮動(dòng)菜單選擇事件
for (int i = 0; i<me.length; i++)
{
if(e.getSource().equals(me[i]))
{ //改變狀態(tài)圖標(biāo)
if(!jb.getIcon().equals(ic[i]))
{ //狀態(tài)改變才發(fā)送信息至服務(wù)器
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);
}
}
}
}
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -