📄 operatormanagepanellistener.java
字号:
/**
* 监听器类,通过传递OperatorManagePanel的实例 来处理OperatorManagePanel类的注册事件,注册组件的监听事件
*
* @author lulicheng
*/
package control.operator;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Iterator;
import java.util.Vector;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import view.common.CenterWindow;
import view.common.CheckInputUtil;
import view.frame.MainFrame;
import view.panel.operator.OperatorAddPanel;
import view.panel.operator.OperatorManagePanel;
import view.panel.operator.OperatorModifyPanel;
import vo.OperatorVo;
import dao.common.DbException;
import dao.common.sql.OperatorSql;
import dao.operator.OperatorDao;
import dao.operator.impl.OperatorDaoImpl;
public class OperatorManagePanelListener implements ActionListener {
OperatorManagePanel managePanel;
JDialog dialog;
/**
* 构造函数一
*
* @param managePanel
*/
public OperatorManagePanelListener(OperatorManagePanel managePanel) {
this.managePanel = managePanel;
}
/**
* 构造函数二
*
* @param managePanel
* @param dialog
*/
public OperatorManagePanelListener(OperatorManagePanel managePanel,
JDialog dialog) {
this.managePanel = managePanel;
this.dialog = dialog;
}
public void actionPerformed(ActionEvent e) {
String actionCommand = e.getActionCommand();
if (actionCommand.equals("查找")) {
String sql = null;
String key = managePanel.buildInputField().getText(); // 获取当前输入框中的字符串
if (key.length() == 0) {
sql = OperatorSql.OPERATOR_LIST; // 没任何输入时,设置为查询显示所有操作员
} else if (!CheckInputUtil.checkIsContainCharactor(key)) {
sql = OperatorSql.SEARCH_OPERATOR_BY_ID; // 输入的不包含字母,那么就设置为按序号进行查询
} else if (!CheckInputUtil.checkIsContainNumber(key)) {
sql = OperatorSql.SEARCH_OPERATOR_BY_NAME; // 输入非数字序列时,按照姓名进行查询
} else {
// 没有输入正确形式的字符串,则清空表格的内容
JTable table = managePanel.buildInfoTable();
DefaultTableModel model = (DefaultTableModel) table.getModel();
int rows = table.getRowCount();
for (int i = rows - 1; i >= 0; i--) {
model.removeRow(i);
}
}
// 接受数据库查询语句,并且根据关键字key进行查询
buildInfoTableData(sql, key);
} else if (actionCommand.equals("添加操作员")) {
JDialog dialog = new JDialog(MainFrame.getMainFrame(), "添加操作员",
true);
OperatorAddPanel panel = new OperatorAddPanel(managePanel, dialog);
dialog.setContentPane(panel);
dialog.setSize(490, 280);
CenterWindow.centerWindow(dialog);
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} else if (actionCommand.equals("修改信息")) {
if (managePanel != null) {
JTable table = managePanel.buildInfoTable();
int row = table.getSelectedRow(); // 获取选中的行
if(row < 0){
JOptionPane.showMessageDialog(null, "请您选择要修改信息的操作员");
return;
}
JDialog dialog = new JDialog(MainFrame.getMainFrame(),
"修改操作员信息", true);
OperatorModifyPanel panel;
panel = new OperatorModifyPanel(managePanel, dialog);
dialog.setContentPane(panel);
dialog.setSize(490, 280);
CenterWindow.centerWindow(dialog);
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
}
} else if (actionCommand.equals("删除操作员")) {
JTable table = managePanel.buildInfoTable();
int row = table.getSelectedRow(); // 获取选中的行
if(row < 0){
JOptionPane.showMessageDialog(null, "请您选择要删除的操作员");
return;
}
int operId = Integer.parseInt(table.getValueAt(row, 0).toString());
OperatorDao dao = new OperatorDaoImpl();
// 弹出确定-取消对话框,以确认是否删除
int option = JOptionPane.showConfirmDialog(null, "确定要删除吗", "删除提示",
JOptionPane.OK_CANCEL_OPTION);
if (option == JOptionPane.OK_OPTION) {
if (dao.deleteOperator(operId)) {
DefaultTableModel model = (DefaultTableModel) table
.getModel();
model.removeRow(row);
JOptionPane.showMessageDialog(null, "恭喜!已成功将该操作员删除");
}
}
} else if (actionCommand.equals("退出")) {
dialog.dispose();
}
}
public void buildInfoTableData(String sql, String key) {
OperatorDao dao = new OperatorDaoImpl();
Vector<OperatorVo> v;
try {
if (sql == OperatorSql.OPERATOR_LIST) {
v = dao.searchOperatorAll(sql);
} else if (sql == OperatorSql.SEARCH_OPERATOR_BY_ID
|| sql == OperatorSql.SEARCH_OPERATOR_BY_NAME) {
v = dao.searchOperatorByKey(sql, key);
} else {
v = null;
}
if (v != null) {
Iterator<OperatorVo> iter = v.iterator();
OperatorVo value = null;
JTable table = managePanel.buildInfoTable();
DefaultTableModel model = (DefaultTableModel) table.getModel();
int rows = table.getRowCount();
for (int i = rows - 1; i >= 0; i--) {
model.removeRow(i);
}
rows = table.getRowCount();
while (iter.hasNext()) {
value = (OperatorVo) iter.next();
Object[] data = { new Integer(value.getOperatorId()),
value.getOperatorName(), value.getOperatorPhone(),
value.getOperatorAddress(),
value.getOperatorPurview() };
// 将数据通过tablemodel添加到jtable中
model.addRow(data);
}
}
} catch (DbException ex) {
JOptionPane.showMessageDialog(null, ex.getMessage());
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -