📄 vipmanagepanellistener.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 + -