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