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

📄 vipmanagepanellistener.java

📁 一个优秀的干洗店管理系统
💻 JAVA
字号:
/**
 * ConsumerManagePanel的监听器类,注册组件的监听事件
 * 
 * @author lulicheng
 * 
 */
package control.vip;

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.vip.VipAddPanel;
import view.panel.vip.VipChangeCardPanel;
import view.panel.vip.VipManagePanel;
import view.panel.vip.VipModifyPanel;
import view.panel.vip.VipRechargePanel;
import vo.VipVo;
import dao.common.DbException;
import dao.common.sql.VipSql;
import dao.vip.VipDao;
import dao.vip.impl.VipDaoImpl;

public class VipManagePanelListener implements ActionListener {

	private VipManagePanel managePanel = null;
	private JDialog dialog =null;
	/**
	 * 构造函数一
	 * @param managePanel
	 */
	public VipManagePanelListener(VipManagePanel managePanel) {
		this.managePanel = managePanel;
	}
	/**
	 * 构造函数二
	 * @param managePanel
	 */
	public VipManagePanelListener(VipManagePanel managePanel, JDialog dialog) {
		this.managePanel = managePanel;
		this.dialog = dialog;
	}
	/**
	 * 构造函数三
	 * @param managePanel
	 */
	public VipManagePanelListener(JDialog dialog) {
		this.dialog = dialog;
	}

	public void actionPerformed(ActionEvent e) {
		String actionCommand = e.getActionCommand();
		if (actionCommand.equals("查找会员")) {
			String sql = null;
			String keyInput = managePanel.buildInputField().getText(); // 获取当前输入框中的字符串

			if (keyInput.length() == 0) {

				sql = VipSql.VIP_LIST; // 没任何输入时,设置为查询显示所有操作员
				// 接受数据库查询语句,并且根据关键字key进行查询
				buildInfoTableData(sql, keyInput);

			} else if (!CheckInputUtil.checkIsContainCharactor(keyInput)) {

				sql = VipSql.SEARCH_BY_VIP_ID; // 输入的不包含字母,那么就设置为按序号进行查询
				// 接受数据库查询语句,并且根据关键字key进行查询
				buildInfoTableData(sql, keyInput);

			} else if (!CheckInputUtil.checkIsContainNumber(keyInput)) {

				sql = VipSql.SEARCH_UNCLEAR_BY_VIP_NAME; // 输入非数字序列时,按照姓名进行模糊查询
				buildInfoTableData(sql, keyInput);

			} else {
				// 没有输入正确形式的字符串,则清空表格的内容
				JTable table = managePanel.buildConsumerInfoTable();
				DefaultTableModel model = (DefaultTableModel) table.getModel();
				int rows = table.getRowCount();
				for (int i = rows - 1; i >= 0; i--) {
					model.removeRow(i);
				}
			}

		} else if (actionCommand.equals("会员充值")) {
			if (managePanel.getSelectedData() == null) {
				JOptionPane.showMessageDialog(null, "请先选择会员", "选择提示", JOptionPane.YES_OPTION);
				//VipRechargePanel panel = new VipRechargePanel(dialog);
			}else {
				JDialog dialog = new JDialog(MainFrame.getMainFrame(),"会员充值",true);
				VipRechargePanel panel = new VipRechargePanel(managePanel, dialog);
				dialog.setContentPane(panel);
				//dialog.setTitle("会员充值");
				dialog.setSize(420, 260);
				CenterWindow.centerWindow(dialog);
				dialog.setVisible(true);
			}
		} else if (actionCommand.equals("添加会员")) {
			JDialog dialog = new JDialog(MainFrame.getMainFrame(),"添加会员",true);
			VipAddPanel panel = new VipAddPanel(managePanel, dialog);
			dialog.setContentPane(panel);
			dialog.setSize(550, 360);
			CenterWindow.centerWindow(dialog);
			dialog.setVisible(true);
		} else if (actionCommand.equals("修改信息")) {
			if (managePanel.getSelectedData() == null) {
				JOptionPane.showMessageDialog(null, "请先选择会员", "选择提示", JOptionPane.YES_OPTION);
				return;
				//VipRechargePanel panel = new VipRechargePanel(dialog);
			}
			/*if(managePanel==null){	
				String help = "请先选择需要修改的会员信息";
				String error = "选择异常";
//				throw new SelectException(help, error);
				JOptionPane.showMessageDialog(null, "请先选择需要修改的会员信息");
			}else{*/
				JDialog dialog = new JDialog(MainFrame.getMainFrame(),"修改会员信息",true);
				VipModifyPanel panel = new VipModifyPanel(managePanel, dialog);
				dialog.setContentPane(panel);
				//dialog.setTitle("修改会员信息");
				dialog.setSize(550, 360);
				CenterWindow.centerWindow(dialog);
				dialog.setVisible(true);	
		} else if (actionCommand.equals("换卡")) {
			JDialog dialog = new JDialog();
			VipChangeCardPanel panel = new VipChangeCardPanel(managePanel, dialog);
			dialog.setContentPane(panel);
			dialog.setTitle("换会员卡");
			dialog.setSize(470, 330);
			CenterWindow.centerWindow(dialog);
			dialog.setVisible(true);
		} else if (actionCommand.equals("删除会员")) {
			JTable table = managePanel.buildConsumerInfoTable();
			int row = table.getSelectedRow(); // 获取选中的行
			if(row == -1){
				JOptionPane.showConfirmDialog(null, "请先选择要删除的会员", "选择提示", JOptionPane.YES_OPTION);
			}else{
				int vipId = Integer.parseInt(table.getValueAt(row, 0).toString());
				String vipName = table.getValueAt(row, 1).toString();
				VipDao dao = new VipDaoImpl();
				// 弹出确定-取消对话框,以确认是否删除
				int option = JOptionPane.showConfirmDialog(null, "您要删除会员"+vipName
						+"吗(编号"+vipId+")?", "删除提示",
				      JOptionPane.OK_CANCEL_OPTION);
				if (option == JOptionPane.OK_OPTION) {
					if (dao.deleteVip(vipId)) {
						DefaultTableModel model = (DefaultTableModel) table.getModel();
						model.removeRow(row);
						JOptionPane.showMessageDialog(null, "恭喜!已成功的从数据库中删除选定的行");
					}

				} 
			}
		} else if(actionCommand.equals("退出")){
			this.dialog.dispose();
		}
		else{
			System.out.println("Unknown event source.");
		}
	}

	
	public void buildInfoTableData(String sql, String keyInput) {
		VipDao dao = new VipDaoImpl();
		Vector<VipVo> v;
		try {
			// 通过判断传递进来的Sql语句进行判断,应该进行什么查询
			if (sql == VipSql.VIP_LIST) {
				v = dao.searchVipAll(sql);
			}else {
				v = dao.searchVipByKey(sql, keyInput);
			}

			Iterator<VipVo> iter = v.iterator();
			if (iter == null) {
			}
			VipVo value = null;
			if(managePanel != null){
				JTable table = managePanel.buildConsumerInfoTable();
				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 = (VipVo) iter.next();
					Object[] data = { new Integer(value.getVipCard().getVipId()), value.getVipName(),
					      value.getVipSex(), value.getVipCard().getVipLevel(),
					      value.getVipCard().getCardId(), value.getVipCard().getRestMoney(),
					      value.getVipCard().getCardState(), value.getVipPhone(),
					      value.getVipCard().getPoints(), String.valueOf(value.getVipBirthday().substring(0, 10)),
					      String.valueOf(value.getVipCard().getRegistDate().substring(0, 10)) };
					
					model.addRow(data);
				}
				
				
			}

		} catch (DbException ex) {
			JOptionPane.showMessageDialog(null, ex.getMessage());
		}

	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -