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

📄 operatoraddpanel.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.OperatorAddPanelListener;

/**
 * @author Administrator
 * 
 */
public class OperatorAddPanel 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 manage;

	public OperatorAddPanel(OperatorManagePanel managePanel, JDialog dialog) {
		this.manage = managePanel;
		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());
			buttonPanel.add(buildBtnCancel(dialog));
		}
		return buttonPanel;
	}

	public JButton buildBtnOk() {
		if (buttonOk == null) {
			buttonOk = new JButton("确认添加");
			buttonOk.addActionListener(new OperatorAddPanelListener(this,
					manage));
		}
		return buttonOk;
	}

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

	/**
	 * 获得界面输入的值,以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 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();
		initJTextField();
		initJPasswordField();
		initJComboBox();
	}

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

	/**
	 * 初始化文本框,并且给予初始化大小
	 */
	public void initJTextField() {
		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);
	}

	/**
	 * 检查该面板输入的信息是否符合条件,包括编号不含字符,必备条件非空,密码和密码确认匹配
	 * 
	 * @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, "请输入操作员姓名");
			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, "请输入操作员姓名");
			pswEnsureField.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 + -