⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 operatormanagepanellistener.java

📁 一个优秀的干洗店管理系统
💻 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 + -