[java]代码库
package client.control;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JOptionPane;
import com.MyTools;
import com.MyTools.Flag;
import client.common.MyLabel;
import client.frame.LoginFrame;
import client.frame.RegisterFrame;
import client.socket.CS_TCP;
//import com.sun.awt.AWTUtilities;//这个导入很重要,不导入报错,导入但又警告,所以不要理警告
/**
* @author LXA
* 登录窗体,继承自LoginFrame
*/
public class Login extends LoginFrame
{
int width=350;
int height=266;
private Point lastPoint = null;//存放按下鼠标时的坐标点
public CS_TCP cs_TCP=null;//声明一个客户端TCP
public Main main; //声明一个主窗体
public RegisterFrame registerFrame=null;
/**
* 程序的主入口
* @param args
*/
public static void main(String[] args)
{
MyTools.changeSkin();//更换皮肤
new Login();
}
/**
* 登录窗体的构造方法
*/
public Login()
{
init();
}
/**
* 初始化
*/
public void init()
{
MyTools.setWindowsMiddleShow(this,width,height);//设置窗体居中显示
new MyLabel(lbl登录, "../img/button/button_login", "png").addEvent();
new MyLabel(lbl最小化, "../img/button/login_minsize", "png").addEvent();
new MyLabel(lbl退出, "../img/button/login_exit", "png").addEvent();
new MyLabel(lbl多账号, "../img/button/login_duozhanghao", "png").addEvent();
new MyLabel(lbl设置, "../img/button/login_setting", "png").addEvent();
new MyLabel(lbl注册账号).addEvent();
initUserStatus();
//AWTUtilities.setWindowOpaque(this, false);//设置窗体完全透明
addEvent();
this.setVisible(true);
main=new Main();
}
/**
* 初始化用户是否在线等状态
*/
public void initUserStatus()
{
comboBox状态.removeAllItems();
comboBox状态.addItem(MyTools.getIcon("../img/status/status_online_12.png"));
comboBox状态.addItem(MyTools.getIcon("../img/status/status_qme_12.png"));
comboBox状态.addItem(MyTools.getIcon("../img/status/status_leave_12.png"));
comboBox状态.addItem(MyTools.getIcon("../img/status/status_busy_12.png"));
comboBox状态.addItem(MyTools.getIcon("../img/status/status_invisible_12.png"));
}
/**
* 登录到服务器
*/
public void login()
{
String name=textField用户名.getText();
String password=new String(pwd密码.getPassword());
if(name.equals("")||password.equals(""))
JOptionPane.showMessageDialog(this, "用户名和密码不能为空!","错误",JOptionPane.ERROR_MESSAGE);
else
{
try
{
if(cs_TCP==null)
cs_TCP=new CS_TCP(MyTools.QQServerIP, MyTools.QQServerPort,this,main);
System.out.println("开始检测用户名和密码……");
cs_TCP.sendMessage(Flag.LOGIN+MyTools.FLAGEND+name+MyTools.SPLIT1+password+MyTools.SPLIT1+main.getServerPort()+MyTools.SPLIT1+comboBox状态.getSelectedIndex());
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null, "连接服务器失败!请检查网络连接或确保QQ服务器已启动!");
}
}
}
/**
* 处理窗体的鼠标按下事件
* @param e
*/
public void mousePress(MouseEvent e)
{
lastPoint = e.getLocationOnScreen();
}
/**
* 处理窗体的拖拽事件
* @param e
*/
public void mouseDrag(MouseEvent e)
{
Point point = e.getLocationOnScreen();
int offsetX = point.x - lastPoint.x;
int offsetY = point.y - lastPoint.y;
Rectangle bounds = this.getBounds();
bounds.x += offsetX;
bounds.y += offsetY;
this.setBounds(bounds);
lastPoint = point;
}
/**
* 给窗体添加事件
*/
public void addEvent()
{
lbl登录.addMouseListener(new MouseAdapter()
{
//登录按钮的单击事件
@Override
public void mouseClicked(MouseEvent e)
{
login();
}
});
this.addMouseListener(new MouseAdapter()
{
//窗体的鼠标按下事件
@Override
public void mousePressed(MouseEvent e)
{
mousePress(e);
}
});
this.addMouseMotionListener(new MouseAdapter()
{
@Override
public void mouseDragged(MouseEvent e)
{
mouseDrag(e);
};
});
lbl退出.addMouseListener(new MouseAdapter()
{
@Override
public void mouseClicked(MouseEvent e)
{
System.exit(0);
}
});
lbl最小化.addMouseListener(new MouseAdapter()
{
@Override
public void mouseClicked(MouseEvent e)
{
JOptionPane.showMessageDialog(null, "功能暂未实现!敬请期待!", "温馨提示", JOptionPane.INFORMATION_MESSAGE);
}
});
lbl多账号.addMouseListener(new MouseAdapter()
{
@Override
public void mouseClicked(MouseEvent e)
{
JOptionPane.showMessageDialog(null, "功能暂未实现!敬请期待!", "温馨提示", JOptionPane.INFORMATION_MESSAGE);
}
});
lbl设置.addMouseListener(new MouseAdapter()
{
@Override
public void mouseClicked(MouseEvent e)
{
JOptionPane.showMessageDialog(null, "功能暂未实现!敬请期待!", "温馨提示", JOptionPane.INFORMATION_MESSAGE);
}
});
lbl注册账号.addMouseListener(new MouseAdapter()
{
@Override
public void mouseClicked(MouseEvent e)
{
new Register();
}
});
}
}