📄 mylistener.java
字号:
package com.softfz.jn0708.login;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ConnectException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.HashMap;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import com.softfz.jn0708.chat.ChatFrame;
import com.softfz.jn0708.srcpackage.*;
import com.softfz.jn0708.util.Tools;
/**
* 登录窗体 监听
* @author admin
*
*/
public class MyListener implements ActionListener {
private LoginFrame loginFrame;
private int count=1;
private int i=1;
/**
* 带参数构造
* @param loginFrame 登录框
*/
public MyListener(LoginFrame loginFrame) {
this.loginFrame = loginFrame;
}
/**
* 无参构造
*
*/
public MyListener() {
}
/**
* 登录窗体 监听处理事件
*/
public void actionPerformed(ActionEvent e) {
Socket clientSocket;//客户socket
SrcPackage loginPackage = null;//登录包
SrcPackage validatePackage = null;//验证包
ObjectInputStream ois = null;//输入流
ObjectOutputStream oos = null;//输出流
Tools tools = new Tools();
TUser user = new TUser() ;
TCompany company =null;
JButton ADButton = loginFrame.getCenterpanel().getBtnAd();// 设置按钮.
String port = loginFrame.getCenterpanel().getJtfPort().getText();
if (e.getActionCommand()=="LOGIN"){
count = loginFrame.getLoginCount()+1;
loginFrame.setLoginCount(count);
//登录 处理
System.out.println(count);
String UNO=loginFrame.getCenterpanel().getJbcQQNum().getSelectedItem().toString().trim();
if (loginFrame.getCenterpanel().getJbcQQNum().getSelectedItem().toString().trim().equals("")){
JOptionPane.showMessageDialog(null,"号码不能为空","提示信息",JOptionPane.WARNING_MESSAGE);
loginFrame.getCenterpanel().getJbcQQNum().requestFocus();
if (loginFrame.getLoginCount() ==3){
JOptionPane.showMessageDialog(null,"登录三次失败,即将退出登录!","提示信息",JOptionPane.WARNING_MESSAGE);
System.exit(0);
}
}else if (loginFrame.getCenterpanel().getJtfQQPwd().getText().trim().equals("")){
JOptionPane.showMessageDialog(null,"密码不能为空","提示信息",JOptionPane.WARNING_MESSAGE);
loginFrame.getCenterpanel().getJtfQQPwd().requestFocus();
if (loginFrame.getLoginCount() ==3){
JOptionPane.showMessageDialog(null,"登录三次失败,即将退出登录!","提示信息",JOptionPane.WARNING_MESSAGE);
System.exit(0);
}
}else {
if (loginFrame.getCenterpanel().getJcbAutoLogin().isSelected()){
tools.properties.setProperty("IsSaveID","Y");
tools.properties.setProperty("Uno",loginFrame.getCenterpanel().getJbcQQNum().getSelectedItem().toString().trim());
}else{
tools.properties.setProperty("IsSaveID","N");
tools.properties.setProperty("Uno","");
}
if (loginFrame.getCenterpanel().getJcblLogin().isSelected()){
tools.properties.setProperty("IsSavePwd","Y");
tools.properties.setProperty("UPwd",loginFrame.getCenterpanel().getJtfQQPwd().getText().toString().trim());
}else{
tools.properties.setProperty("IsSavePwd","N");
tools.properties.setProperty("UPwd","");
}
tools.saveProperties("");
try {
//连接
clientSocket = new Socket(loginFrame.getCenterpanel().getJtfIP().getText().trim(),
Integer.parseInt(loginFrame.getCenterpanel().getJtfPort().getText().trim()));
if (clientSocket!=null){
oos = new ObjectOutputStream(clientSocket.getOutputStream());
ois = new ObjectInputStream(clientSocket.getInputStream());
// 发登录包
loginPackage = new SrcPackage();
loginPackage.setFrom(loginFrame.getCenterpanel().getJbcQQNum().getSelectedItem().toString().trim());
loginPackage.setTo(SrcPackage.SERVER_ID);
loginPackage.setType(SrcPackage.LOGIN_TYPE);
HashMap data = new HashMap();
data.put("UNO",UNO);
data.put("UPWD",loginFrame.getCenterpanel().getJtfQQPwd().getText().trim());
loginPackage.setData(data);
//发送
oos.writeObject(loginPackage);
oos.flush();
//收验证包
validatePackage = (SrcPackage)ois.readObject();
// //验证包处理
if (validatePackage.getType().equals(SrcPackage.VELIDATE_TYPE)){
HashMap map = validatePackage.getData();
if (map.get("TAG").toString().trim().equals("1")){
JOptionPane.showMessageDialog(null, "用户不存在", "提示",JOptionPane.INFORMATION_MESSAGE);
if (loginFrame.getLoginCount() ==3){
JOptionPane.showMessageDialog(null,"登录三次失败,即将退出登录!","提示信息",JOptionPane.WARNING_MESSAGE);
System.exit(0);
}
}else if (map.get("TAG").toString().trim().equals("2")){
JOptionPane.showMessageDialog(null, "登录密码错误", "提示",JOptionPane.INFORMATION_MESSAGE);
if (loginFrame.getLoginCount() ==3){
JOptionPane.showMessageDialog(null,"登录三次失败,即将退出登录!","提示信息",JOptionPane.WARNING_MESSAGE);
System.exit(0);
}
}else if (map.get("TAG").toString().trim().equals("3")){
JOptionPane.showMessageDialog(null, "用户已在线", "提示",JOptionPane.INFORMATION_MESSAGE);
if (loginFrame.getLoginCount() ==3){
JOptionPane.showMessageDialog(null,"登录三次失败,即将退出登录!","提示信息",JOptionPane.WARNING_MESSAGE);
System.exit(0);
}
}else if (map.get("TAG").toString().trim().equals("4")){
// if (clientSocket.isClosed()){
user = (TUser)map.get("UINFO");
company = (TCompany)map.get("COMPANY");
ChatFrame chatframe = new ChatFrame(clientSocket,ois,oos,port,user,company);
chatframe.show();
loginFrame.dispose();
// }else{
// System.out.println("服务器已打开");
// }
}
}
}
} catch (ConnectException e1) {
JOptionPane.showMessageDialog(null,"服务器未开启或是由于网络原因使得无法正常连接到服务器!","提示信息",JOptionPane.WARNING_MESSAGE);
e1.printStackTrace();
} catch (NumberFormatException e1) {
// TODO 自动生成 catch 块
e1.printStackTrace();
} catch (UnknownHostException e1) {
e1.printStackTrace();
} catch (IOException e1) {
// TODO 自动生成 catch 块
e1.printStackTrace();
} catch (ClassNotFoundException e1) {
// TODO 自动生成 catch 块
e1.printStackTrace();
}
}
}else if (e.getActionCommand()=="AD"){
System.out.println("AD");
if(i==0){
loginFrame.setSize(330,252);
loginFrame.validate();
ADButton.setText(" 设置↓ ");
i=1;
}else{
loginFrame.setSize(330,292);
loginFrame.validate();
ADButton.setText(" 设置↑ ");
i=0;
}
}else if (e.getActionCommand()=="CLOSE"){
System.out.println("CLOSE");
System.exit(0);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -