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

📄 operatormodifypanel.java

📁 一个优秀的干洗店管理系统
💻 JAVA
字号:
/**
 * 
 */
package view.panel.operator;

import java.awt.BorderLayout;
import java.awt.GridBagLayout;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

import view.common.CheckInputUtil;
import view.common.GBC;
import vo.OperatorVo;
import control.operator.OperatorModifyPanelListener;

/**
 * @author Administrator
 * 
 */
public class OperatorModifyPanel extends JPanel {
	// =====将面板分成两个面板=====
	JPanel infoPanel, buttonPanel;

	// -----operInfoPanel 操作员信息-----
	// 操作员编号,操作员姓名,操作员密码,操作员密码确认
	JLabel operId, operName, operPsw, operPswEnsure;
	// 操作员电话,操作员权限,操作员地址
	JLabel operPhone, operPurview, operAddress;
	// 编号文本框,姓名文本框,电话文本框,地址文本框
	JTextField idField, nameField, phoneField, addressField;
	// 输入密码框,确认密码框
	JPasswordField passwordField, pswEnsureField;
	// 权限组合框
	JComboBox purviewCombo;

	// -----buttonPanel的组件,确认添加,取消
	JButton buttonOk, buttonCancel;

	// 需要与其他界面交互需要的属性
	OperatorManagePanel managePanel;

	public OperatorModifyPanel(OperatorManagePanel matherPanel, JDialog dialog) {
		this.managePanel = matherPanel;
		this.setSize(490, 280);
		this.setLayout(new BorderLayout());
		initComponent();
		this.add(buildInfoPanel());
		this.add(buildButtonPanel(dialog), BorderLayout.SOUTH);

	}

	/**
	 * 构造按钮面板(buttonPanel),并且设置布局
	 * 
	 * @return JPanel
	 */
	public JPanel buildButtonPanel(JDialog dialog) {
		if (buttonPanel == null) {
			buttonPanel = new JPanel();
			buttonPanel.add(buildBtnOk(dialog));
			buttonPanel.add(buildBtnCancel(dialog));
		}
		return buttonPanel;
	}

	public JButton buildBtnOk(JDialog dialog) {
		if (buttonOk == null) {
			buttonOk = new JButton("确认修改");
			buttonOk.addActionListener(new OperatorModifyPanelListener(this, managePanel, dialog));
		}
		return buttonOk;
	}

	public JButton buildBtnCancel(JDialog dialog) {
		if (buttonCancel == null) {
			buttonCancel = new JButton("取消");
			buttonCancel.addActionListener(new OperatorModifyPanelListener(this, managePanel, dialog));
		}
		return buttonCancel;
	}

	/**
	 * 将已经初始化的标签,文本输入框,文本域添加到信息面板,并且设置布局
	 * 
	 * @return JPanel
	 */
	public JPanel buildInfoPanel() {
		if (infoPanel == null) {
			infoPanel = new JPanel();
			infoPanel.setBorder(BorderFactory.createTitledBorder("操作员信息"));
			infoPanel.setLayout(new GridBagLayout());

			infoPanel.add(operId, new GBC(0, 0).setInset(5, 15, 5, 15).setFill(GBC.WEST));
			infoPanel.add(idField, new GBC(1, 0).setInset(5, 15, 5, 15).setWeight(20, 0).setFill(
			      GBC.HORIZONTAL));
			infoPanel.add(operName, new GBC(2, 0).setInset(5, 15, 5, 15).setFill(GBC.WEST));
			infoPanel.add(nameField, new GBC(3, 0).setInset(5, 15, 5, 15).setWeight(5, 0).setFill(
			      GBC.HORIZONTAL));

			infoPanel.add(operPsw, new GBC(0, 1).setInset(5, 15, 5, 15).setFill(GBC.WEST));
			infoPanel.add(passwordField, new GBC(1, 1).setInset(5, 15, 5, 15).setWeight(5, 0).setFill(
			      GBC.HORIZONTAL));
			infoPanel.add(operPswEnsure, new GBC(2, 1).setInset(5, 15, 5, 15).setFill(GBC.WEST));
			infoPanel.add(pswEnsureField, new GBC(3, 1).setInset(5, 15, 5, 15).setWeight(5, 0)
			      .setFill(GBC.HORIZONTAL));

			infoPanel.add(operPhone, new GBC(0, 2).setInset(5, 15, 5, 15).setFill(GBC.WEST));
			infoPanel.add(phoneField, new GBC(1, 2).setInset(5, 15, 5, 15).setWeight(5, 0).setFill(
			      GBC.HORIZONTAL));
			infoPanel.add(operPurview, new GBC(2, 2).setInset(5, 15, 5, 15).setFill(GBC.WEST));
			infoPanel.add(purviewCombo, new GBC(3, 2).setInset(5, 15, 5, 15).setWeight(5, 0).setFill(
			      GBC.HORIZONTAL));

			infoPanel.add(operAddress, new GBC(0, 3).setInset(5, 15, 5, 15).setFill(GBC.WEST));
			infoPanel.add(addressField, new GBC(1, 3, 3, 1).setFill(GBC.HORIZONTAL));

		}
		return infoPanel;
	}

	/*
	 * 初始化无需添加事件处理的组件,包括文本标签,文本输入框
	 */
	public void initComponent(){
		initJLabel();
		initJTextFeild();
		initJPasswordField();
		initJComboBox();
		initialComponentTableValue(managePanel.getSelectedData());
	}

	/**
	 * 初始化面板中标签属性
	 */
	public void initJLabel() {
		operId = new JLabel("操作员编号");
		operName = new JLabel("操作员姓名");
		operPsw = new JLabel("操作员密码");
		operPswEnsure = new JLabel("密码确认");
		operPhone = new JLabel("操作员电话");
		operPurview = new JLabel("操作员权限");
		operAddress = new JLabel("操作员地址");
	}

	/*
	 * "操作员编号,操作员姓名,操作员密码,操作员密码确认" JLabel operId, operName, operPsw,
	 * operPswEnsure; // 操作员电话,操作员权限,操作员地址 JLabel operPhone, operPurview,
	 * operAddress; // 编号文本框,姓名文本框,电话文本框,地址文本框
	 */

	/**
	 * 初始化文本框,并且给予初始化大小
	 */
	public void initJTextFeild() {
		idField = new JTextField(10);
		nameField = new JTextField(10);
		phoneField = new JTextField(10);
		addressField = new JTextField(20);
	}

	/**
	 * 初始化密码输入框的大小
	 */
	public void initJPasswordField() {
		passwordField = new JPasswordField(10);
		pswEnsureField = new JPasswordField(10);
	}

	/**
	 * 初始化组合框,列表选项赋值
	 */
	public void initJComboBox() {
		String[] purview = { "收银员", "系统管理员", "店长", };
		purviewCombo = new JComboBox(purview);
	}

	// 将通过单机表格得到的值初始化文本输入框的值
	public void initialComponentTableValue(String[] value) {
		if (null != value) {
			idField.setText(value[0]);
			idField.setEditable(false);
			nameField.setText(value[1]);

			phoneField.setText(value[2]);
			addressField.setText(value[3]);
			purviewCombo.setSelectedItem(value[4]);
		}

	}

	/**
	 * 获得界面输入的值,以OperatorVo对象的形式传递给调用者
	 * 
	 * @return OperatorVo
	 */
	public OperatorVo getInputTxtValue() {
		int id = Integer.parseInt(idField.getText().trim());
		String name = nameField.getText().trim();
		String password = String.valueOf(passwordField.getPassword());

		String pueview = purviewCombo.getSelectedItem().toString().trim();
		String phone = phoneField.getText().trim();
		String address = addressField.getText().trim();
		return new OperatorVo(id, name, password, pueview, phone, address);
	}

	/**
	 * 检查该面板输入的信息是否符合条件,包括编号不含字符,必备条件非空,密码和密码确认匹配
	 * 
	 * @return
	 */
	public boolean checkInput() {
		if (CheckInputUtil.checkInputIsNull(idField.getText())) {
			JOptionPane.showMessageDialog(null, "操作员编号不能为空");
			idField.requestFocus();
			return false;
		}
		if (CheckInputUtil.checkIsContainCharactor(idField.getText())) {
			JOptionPane.showMessageDialog(null, "操作员编号只能为数字");
			idField.requestFocus();
			return false;
		}
		if (CheckInputUtil.checkInputIsNull(nameField.getText())) {
			JOptionPane.showMessageDialog(null, "请输入操作员姓名");
			nameField.requestFocus();
			return false;
		}

		if (CheckInputUtil.checkInputIsNull(String.valueOf(passwordField.getPassword()))) {
			JOptionPane.showMessageDialog(null, "请输入密码(小于16位)");
			passwordField.requestFocus();
			return false;
		}
		if (CheckInputUtil.checkInputIsNull(String.valueOf(passwordField.getPassword()))) {
			JOptionPane.showMessageDialog(null, "请输入密码(小于16位)");
			passwordField.requestFocus();
			return false;
		}

		if (CheckInputUtil.checkInputIsNull(String.valueOf(pswEnsureField.getPassword()))) {
			JOptionPane.showMessageDialog(null, "请输入密码校验(小于16位)");
			passwordField.requestFocus();
			return false;
		}

		if (!String.valueOf(pswEnsureField.getPassword()).equals(
		      String.valueOf(passwordField.getPassword()))) {
			JOptionPane.showMessageDialog(null, "请确定输入的密码和密码确认一致");
			passwordField.requestFocus();
			return false;
		}

		if (CheckInputUtil.checkInputIsNull(phoneField.getText())) {
			JOptionPane.showMessageDialog(null, "联系电话不能为空");
			phoneField.requestFocus();
			return false;
		}
		return true;
	}
}

⌨️ 快捷键说明

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