📄 userevent.java
字号:
package server.userpane;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import server.dao.UserDAO;
import server.factory.DaoFactory;
import server.login.ServerFrme;
/**
* 用户面板中的监听事件
* @author 洪景泉
*
*/
public class UserEvent implements ActionListener {
private DialogPane dialog = null;
private ServerFrme qqServerFrm=null;
private BottomPane btnPane=null;
private TopPane topPane=null;
private int flag; //用来标志是哪个按钮触发的事件
/**
* 底部按钮的构造函数
* @param btnPane 按钮面板对象
* @param qqServerFrm 主面板对象
* @param flag 标志
*/
public UserEvent(BottomPane btnPane,ServerFrme qqServerFrm,int flag) {
this.btnPane = btnPane;
this.qqServerFrm=qqServerFrm;
this.flag=flag;
}
//顶部按钮的构造函数
public UserEvent(TopPane topPane,ServerFrme qqServerFrm,int flag) {
this.topPane =topPane;
this.qqServerFrm=qqServerFrm;
this.flag=flag;
}
public void actionPerformed(ActionEvent e) {
JButton btnTemp = (JButton) e.getSource();
//JButton topTemp=(JButton) e.getSource();
//通过构造函数传递btnPane来获取当前按了什么键.用按钮的动作命令更简洁
//flag=1表示底部面板中的按钮触发的事件
if(flag==1){
if (btnTemp == btnPane.getAddBtn()) {
//OracleDAO userDao = new OracleDAO();
UserDAO userDao=DaoFactory.getUserDao();
String id = userDao.getMaxID();
dialog = new DialogPane(id,qqServerFrm,"添加新用户",1);
dialog.setSize(410, 390);
dialog.setModal(true);
dialog.setLocationRelativeTo(null);
//dialog.setLocationRelativeTo(qqServerFrm);
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
}
if(btnTemp==btnPane.getModitBtn()){
JTable tblTemp = qqServerFrm.getUserPane().getCenterPane().getJTable();
int row = tblTemp.getSelectedRow();
String id = (String) tblTemp.getValueAt(row, 0);
dialog = new DialogPane(id,qqServerFrm, "修改用户信息",2);
dialog.setSize(410, 390);
dialog.setModal(true);
dialog.setLocationRelativeTo(qqServerFrm);
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
}
if (btnTemp == btnPane.getDeleteBtn()) {
JTable tblTemp = qqServerFrm.getUserPane().getCenterPane().getJTable();
int[] row = tblTemp.getSelectedRows();
//System.out.println(row.length);
int len=row.length;
if(len>=1 &&(JOptionPane.showConfirmDialog(qqServerFrm, "确实要删除所选择的记录?", "删除用户信息", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION)){
List<String> list = new ArrayList<String>();
for(int i=0;i<len;i++){
String id = (String) tblTemp.getValueAt(row[i], 0);
list.add(id);
//System.out.println(id);
}
//OracleDAO userDao = new OracleDAO();
UserDAO userDao=DaoFactory.getUserDao();
userDao.delete(list);
qqServerFrm.getUserPane().getCenterPane().reLoadTable();
}
}
if(btnTemp==btnPane.getResetPWDBtn()){
if(JOptionPane.showConfirmDialog(qqServerFrm, "你确实要把所有用户的密码重置为123456吗?", "重置所有用户密码", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION){
//OracleDAO userDao = new OracleDAO();
UserDAO userDao=DaoFactory.getUserDao();
userDao.resetPWD();
qqServerFrm.getUserPane().getCenterPane().reLoadTable();
}
}
//详细信息按钮事件
if(btnTemp==btnPane.getPtcBtn()){
JTable tblTemp = qqServerFrm.getUserPane().getCenterPane().getJTable();
int row = tblTemp.getSelectedRow();
String id = (String) tblTemp.getValueAt(row, 0);
dialog = new DialogPane(id,qqServerFrm, "查看用户信息",3);
dialog.setSize(410, 390);
dialog.setModal(true);
dialog.setLocationRelativeTo(qqServerFrm);
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
}
}else if(flag==2){//flag=2表示顶部面板中的查找按钮触发的事件
if(btnTemp==topPane.getSearchJBtn()){
String colList="ID,Name,NickName,Sex,Department,RegTime";
Map<String, String> sqlMap=new HashMap<String, String>();
String userID=null,userName=null,userDepm=null;
if(!(userID=topPane.getNumJField().getText().trim()).equals("")){
// sql+=" and ID='"+userID+"'";
sqlMap.put("ID",userID);
}
if(!(userName=topPane.getNameJField().getText().trim()).equals("")){
// sql+=" and Name='"+userName+"'";
sqlMap.put("Name",userName);
}
if(!(userDepm=((String)(topPane.getDepartmentCom().getSelectedItem())).trim()).equals("")){
// sql+=" and Department='"+userDepm+"'";
sqlMap.put("Department",userDepm);
}
qqServerFrm.getUserPane().getCenterPane().getJTable().setModel(dataModel(colList,sqlMap));
}
}
}
/**
* 设置表格模型
* @param colList 查询结果集字段
* @param sqlMap 查询条件
* @return 表格模型
*/
private TableModel dataModel(String colList,Map<String,String> sqlMap){
//OracleDAO userDao = new OracleDAO();
UserDAO userDao=DaoFactory.getUserDao();
Vector<Vector<String>> datas = userDao.select(colList,sqlMap);
Vector<String> colunms = new Vector<String>();
colunms.add("用户编号");
colunms.add("用户姓名");
colunms.add("用户昵称");
colunms.add("性别");
colunms.add("部门名称");
colunms.add("注册时间");
TableModel tabModel = new DefaultTableModel(datas, colunms) {
public boolean isCellEditable(int arg0, int arg1) {
// TODO Auto-generated method stub
return false;
}
};
return tabModel;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -