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

📄 managermanagedialog.java

📁 一个基于网络的酒店管理系统
💻 JAVA
字号:
package com.mwq.frame.personnel;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Iterator;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;

import com.mwq.dao.Dao;
import com.mwq.mwing.MTable;

public class ManagerManageDialog extends JDialog {

	private JTextField passwordTextField;

	private JComboBox personnelComboBox;

	private MTable table;

	private DefaultTableModel tableModel;

	private Dao dao = Dao.getInstance();

	private JCheckBox systemCheckBox;

	private JCheckBox sellCheckBox;

	private JCheckBox personnelCheckBox;

	private JCheckBox initCheckBox;

	/**
	 * Launch the application
	 * 
	 * @param args
	 */
	public static void main(String args[]) {
		try {
			ManagerManageDialog dialog = new ManagerManageDialog();
			dialog.addWindowListener(new WindowAdapter() {
				public void windowClosing(WindowEvent e) {
					System.exit(0);
				}
			});
			dialog.setVisible(true);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * Create the dialog
	 */
	public ManagerManageDialog() {
		super();
		setModal(true);
		setTitle("管理员管理");
		setBounds(100, 100, 500, 375);

		final JPanel operatePanel = new JPanel();
		operatePanel.setLayout(new GridBagLayout());
		getContentPane().add(operatePanel, BorderLayout.NORTH);

		final JLabel personnelLabel = new JLabel();
		personnelLabel.setText("员工:");
		final GridBagConstraints gridBagConstraints_8 = new GridBagConstraints();
		gridBagConstraints_8.insets = new Insets(10, 0, 0, 0);
		operatePanel.add(personnelLabel, gridBagConstraints_8);

		personnelComboBox = new JComboBox();
		personnelComboBox.addItem("请选择");
		Vector nameV = dao.sRecordOfNumAndName();
		for (Iterator it = nameV.iterator(); it.hasNext();) {
			personnelComboBox.addItem(it.next());
		}

		final GridBagConstraints gridBagConstraints = new GridBagConstraints();
		gridBagConstraints.insets = new Insets(10, 0, 0, 15);
		gridBagConstraints.gridy = 0;
		gridBagConstraints.gridx = 1;
		operatePanel.add(personnelComboBox, gridBagConstraints);

		final JLabel passwordLabel = new JLabel();
		passwordLabel.setText("登录密码:");
		final GridBagConstraints gridBagConstraints_2 = new GridBagConstraints();
		gridBagConstraints_2.insets = new Insets(10, 0, 0, 0);
		gridBagConstraints_2.gridy = 0;
		gridBagConstraints_2.gridx = 2;
		operatePanel.add(passwordLabel, gridBagConstraints_2);

		passwordTextField = new JTextField();
		passwordTextField.setColumns(40);
		passwordTextField.addKeyListener(new KeyAdapter() {
			@Override
			public void keyTyped(KeyEvent e) {
				if (passwordTextField.getText().length() < 20) {// 登录密码的长度最多为20个字符
					if ("abcdefghigklmnopqrstuvwsyz_0123456789".indexOf(e
							.getKeyChar()) < 0)// 密码只能包含字母、数字和下划线
						e.consume(); // 销毁此次键盘事件
				} else {
					e.consume(); // 销毁此次键盘事件
				}
			}
		});
		final GridBagConstraints gridBagConstraints_4 = new GridBagConstraints();
		gridBagConstraints_4.insets = new Insets(10, 0, 0, 0);
		gridBagConstraints_4.gridy = 0;
		gridBagConstraints_4.gridx = 3;
		operatePanel.add(passwordTextField, gridBagConstraints_4);

		final JLabel purviewLabel = new JLabel();
		purviewLabel.setText("权限:");
		final GridBagConstraints gridBagConstraints_5 = new GridBagConstraints();
		gridBagConstraints_5.insets = new Insets(10, 0, 0, 0);
		gridBagConstraints_5.anchor = GridBagConstraints.NORTH;
		gridBagConstraints_5.gridy = 1;
		gridBagConstraints_5.gridx = 0;
		operatePanel.add(purviewLabel, gridBagConstraints_5);

		final JPanel purviewPanel = new JPanel();
		purviewPanel.setLayout(new GridLayout(0, 4));
		final GridBagConstraints gridBagConstraints_6 = new GridBagConstraints();
		gridBagConstraints_6.insets = new Insets(5, 0, 0, 0);
		gridBagConstraints_6.gridwidth = 3;
		gridBagConstraints_6.gridy = 1;
		gridBagConstraints_6.gridx = 1;
		operatePanel.add(purviewPanel, gridBagConstraints_6);

		systemCheckBox = new JCheckBox();
		systemCheckBox.setText("系统维护");
		systemCheckBox.setSelected(true);
		purviewPanel.add(systemCheckBox);

		sellCheckBox = new JCheckBox();
		sellCheckBox.setText("销售统计");
		purviewPanel.add(sellCheckBox);

		personnelCheckBox = new JCheckBox();
		personnelCheckBox.setText("人员管理");
		purviewPanel.add(personnelCheckBox);

		initCheckBox = new JCheckBox();
		initCheckBox.setText("初始化系统    ");
		purviewPanel.add(initCheckBox);

		final JPanel buttonPanel = new JPanel();
		final GridBagConstraints gridBagConstraints_7 = new GridBagConstraints();
		gridBagConstraints_7.anchor = GridBagConstraints.EAST;
		gridBagConstraints_7.gridwidth = 4;
		gridBagConstraints_7.gridy = 2;
		gridBagConstraints_7.gridx = 0;
		operatePanel.add(buttonPanel, gridBagConstraints_7);

		final JButton addButton = new JButton();
		addButton.setText("添加");
		addButton.addActionListener(new AddButtonAL());
		buttonPanel.add(addButton);

		final JButton delButton = new JButton();
		delButton.setText("删除");
		delButton.addActionListener(new DelButtonAL());
		buttonPanel.add(delButton);

		final JScrollPane scrollPane = new JScrollPane();
		getContentPane().add(scrollPane, BorderLayout.CENTER);

		String[] columnNames = { "序号", "档案编号", "姓    名", "系统维护", "销售统计",
				"人员管理", "初始化系统" };
		Vector columnNameV = new Vector();
		for (int i = 0; i < columnNames.length; i++) {
			columnNameV.add(columnNames[i]);
		}

		tableModel = new DefaultTableModel(dao.sManagerVExceptPassword(),
				columnNameV);
		tableModel.addTableModelListener(new TableModelListener() {
			public void tableChanged(TableModelEvent e) {
				if (e.getType() == TableModelEvent.DELETE) {
					int deleteRow = e.getFirstRow();
					int rowCount = tableModel.getRowCount();
					if (rowCount > 0) {
						if (deleteRow == rowCount) {
							table.setRowSelectionInterval(--rowCount);
						} else {
							table.setRowSelectionInterval(deleteRow);
							for (int row = deleteRow; row < rowCount; row++) {
								tableModel.setValueAt(row + 1, row, 0);
							}
						}
					}
				}
			}
		});

		table = new MTable(tableModel);
		if (table.getRowCount() > 0)
			table.setRowSelectionInterval(0);
		scrollPane.setViewportView(table);

		final JLabel label = new JLabel();
		label.setPreferredSize(new Dimension(10, 0));
		getContentPane().add(label, BorderLayout.WEST);

		final JLabel label_1 = new JLabel();
		label_1.setPreferredSize(new Dimension(0, 10));
		getContentPane().add(label_1, BorderLayout.SOUTH);

		final JLabel label_2 = new JLabel();
		label_2.setPreferredSize(new Dimension(10, 0));
		getContentPane().add(label_2, BorderLayout.EAST);
		//
	}

	private class AddButtonAL implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			String personnel = personnelComboBox.getSelectedItem().toString();// 获得员工选择框的选中项
			if (personnel.equals("请选择")) {// 查看是否选择了员工
				JOptionPane.showMessageDialog(ManagerManageDialog.this,
						"请选择设置为管理员的员工!", "友情提示",
						JOptionPane.INFORMATION_MESSAGE);// 弹出提示
				return;
			}
			String password = passwordTextField.getText();// 获得登录密码
			if (password.length() == 0) {// 查看是否输入了登录密码
				JOptionPane.showMessageDialog(ManagerManageDialog.this,
						"请设置登录密码!", "友情提示", JOptionPane.INFORMATION_MESSAGE);// 弹出提示
				return;
			}
			String[] managers = new String[6];// 用来存储管理员信息
			managers[0] = personnel.substring(0, 9);// 档案编号
			managers[1] = password;// 密码
			managers[2] = (systemCheckBox.isSelected() ? "√" : "");// 系统维护权限
			managers[3] = (sellCheckBox.isSelected() ? "√" : "");// 销售统计权限
			managers[4] = (personnelCheckBox.isSelected() ? "√" : "");// 人员管理权限
			managers[5] = (initCheckBox.isSelected() ? "√" : "");// 初始化系统权限
			personnelComboBox.removeItem(personnel);// 从员工选择框中移除该员工
			dao.iManager(managers);// 持久化到数据库
			Vector managerV = new Vector();// 创建管理员向量
			int rowCount = table.getRowCount();// 获得现有管理员数量
			managerV.add(rowCount + 1);// 添加序号
			for (int i = 0; i < managers.length; i++) {// 添加管理员信息
				managerV.add(managers[i]);
			}
			managerV.set(2, personnel.substring(10));// 将密码修改为姓名
			tableModel.addRow(managerV);// 添加到表格模型
			table.setRowSelectionInterval(rowCount);// 选中新添加的管理员
			//
			personnelComboBox.setSelectedIndex(0);// 默认选中员工列表框的“请选择”项
			systemCheckBox.setSelected(true);// 默认具有系统维护权限
			sellCheckBox.setSelected(false);// 默认不具有销售统计权限
			personnelCheckBox.setSelected(false);// 默认不具有人员管理权限
			initCheckBox.setSelected(false);// 默认不具有初始化系统权限
		}
	}

	private class DelButtonAL implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			int selectedRow = table.getSelectedRow();// 获得选中行
			String name = table.getValueAt(selectedRow, 2).toString();// 获得员工姓名
			int i = JOptionPane.showConfirmDialog(ManagerManageDialog.this,
					"确定要取消管理员“" + name + "”?", "友情提示",
					JOptionPane.YES_NO_OPTION);// 弹出确认框
			if (i == 0) {// 确认删除
				String num = table.getValueAt(selectedRow, 1).toString();// 获得档案编号
				dao.dManagerByRecordNum(num);// 从数据库中删除
				tableModel.removeRow(selectedRow);// 从表格模型中移除
			}
		}
	}

}

⌨️ 快捷键说明

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