📄 serverlistener.java
字号:
package com.sato.server.servermanager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.net.ServerSocket;
import java.util.Vector;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import com.sato.pub.PackType;
import com.sato.pub.QQpack;
import com.sato.server.ServerFrame;
import com.sato.server.dao.factory.DAOFactory;
import com.sato.server.dao.inf.UserDAO;
public class ServerListener implements ActionListener{
/**
*
*/
private ServerManager servermanager;
private ServerFrame sframe;
private ServerSocket serverSocket;
public ServerListener(ServerManager servermanager,ServerFrame sframe) {
// TODO Auto-generated constructor stub
this.sframe=sframe;
this.servermanager=servermanager;
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
TimeNow time=new TimeNow();
String date=time.getNow();
QQpack pack=new QQpack();
if(e.getSource().equals(servermanager.getRunbutton())){
FileWriter fw=null;
BufferedWriter bw=null;
try {
fw=new FileWriter("./log/log.txt",true);
bw=new BufferedWriter(fw);
bw.write(date+"服务器启动"+"\n");
bw.flush();
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}finally{
try {
fw.close();
bw.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
try {
serverSocket = new ServerSocket(8888);
servermanager.setSs(serverSocket);
new ServerThread(serverSocket,servermanager).start();
} catch (IOException e1) {
// TODO Auto-generated catch block
JOptionPane.showConfirmDialog(null, "服务器已经连接", "提示",JOptionPane.DEFAULT_OPTION);
sframe.dispose();
// e1.printStackTrace();
}
servermanager.getJlabel1().setIcon(new ImageIcon("./images/total/serverstart.gif"));
servermanager.getRunbutton().setEnabled(false);
servermanager.getStopbutton().setEnabled(true);
servermanager.getForeoffbuton().setEnabled(true);
this.fresh();
servermanager.getMessageArea().append(date+"服务器启动"+"\n");
sframe.getLogpanel().getCurruntLog().append(date+"服务器启动"+"\n");
}
else if(e.getSource().equals(servermanager.getStopbutton())){
pack.setType(PackType.server_stop);
QQpublic.sendToAll(pack);
JLabel jlabel = new JLabel();
servermanager.getJlabel1().setIcon(new ImageIcon("./images/total/serverstop.gif"));
servermanager.getRunbutton().setEnabled(true);
servermanager.getStopbutton().setEnabled(false);
FileWriter fw=null;
BufferedWriter bw=null;
try {
fw=new FileWriter("./log/log.txt",true);
bw=new BufferedWriter(fw);
bw.write(date+"服务器停止"+"\n");
bw.flush();
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}finally{
try {
fw.close();
bw.close();
QQpublic.closeAll();
serverSocket.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
UserDAO userdao=DAOFactory.createUserDAO();
userdao.setAllOffline();
this.fresh();
servermanager.getMessageArea().append(date+"服务器停止"+"\n");
sframe.getLogpanel().getCurruntLog().append(date+"服务器启动"+"\n");
}
else if(e.getSource().equals(servermanager.getForeoffbuton())){
UserDAO userdao=DAOFactory.createUserDAO();
int[] index=servermanager.getJtableonline().getSelectedRows();
pack.setType(PackType.force_offline);
for(int i=0;i<index.length;i++){
String id=servermanager.getJtableonline().getValueAt(i, 0).toString();
userdao.updateOnline(id, false);
try {
QQpublic.sendMessage(id, pack);
QQpublic.close(id, null);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
this.fresh();
}
else if(e.getSource().equals(servermanager.getEmitButton())){
pack.setType(PackType.bulletin);
pack.setContent(servermanager.getCallArea().getText());
QQpublic.sendToAll(pack);
servermanager.getCallArea().setText("");
}
}
public void fresh(){
Vector<String> columnNames = new Vector<String>();
columnNames.add("QQ号码");
columnNames.add("姓名");
columnNames.add("密码");
columnNames.add("性别");
columnNames.add("年龄");
columnNames.add("地址");
columnNames.add("在线状态");
columnNames.add("注册时间");
Vector<Vector<String>> datas = DAOFactory.createUserDAO().selectAllemp(null,null,1);
DefaultTableModel dataModel = new DefaultTableModel(datas, columnNames){
public boolean isCellEditable(int row, int column) {
return false;
}
};
servermanager.getJtableonline().setModel(dataModel);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -