Worker.java

来源:互联网 发布:java编译命令是什么 编辑:程序博客网 时间:2024/05/16 15:22

 package yaopin;

import java.awt.Component;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import model.*;

public class Worker implements ActionListener
{

 private JPanel jSubPanel = null;

 private JLabel jLabelID,jLabelName ,jLabelDName ,jLabelWorkKind ,jLabelSex ,jLabelBirthday ,jLabelHomePhone ,jLabelTEL ,jLabelPwd ,jLabelGrantDeny ,jLabelNewPwd ;

 private JTextField jTextID ,jTextName ,jTextWorkKind ,jTextBirthday ,jTextHomePhone ,jTextTEL;

 private JPasswordField jTextPwd ,jTextNewPwd;

 private JComboBox jCmbSex, jCmbGrantDeny, jCmbDName;

 private JButton jBtnAdd, jBtnUpdate, jBtnSearch, jBtnCancel, jBtnDelete;

 private DefaultTableModel tableModel;

 private UserDAO userDAO;
 private UserDTO userDTO = new UserDTO();

 public DefaultTableModel getTableModel()
 {
  if (tableModel == null)
  {
   tableModel=new DefaultTableModel();    // 与控件名要一致。
   String[] columnNames = {"员工编号", "员工姓名", "部门名称", "工作性质", "性别", "出生日期", "宅电", "手机","权限"};
   for(String column : columnNames)
   {
    tableModel.addColumn(column);
   }
   userDAO = new UserDAO();
   for(UserDTO user : userDAO.fillWorker())
   {
    tableModel.addRow(user.toArray());
   }
  }
  return tableModel;
 }

 public JPanel getJSubPanel()
 {
  if (jSubPanel == null)
  {
   jLabelID = new JLabel("员工编号");
   jLabelID.setBounds(new Rectangle(90, 40, 54, 22));
   jTextID = new JTextField();
   jTextID.setName("员工编号");  // 与列名要一致。
   jTextID.setBounds(new Rectangle(150, 40, 200, 25));
   jLabelDName = new JLabel("部门名称");
   jLabelDName.setBounds(new Rectangle(90, 72, 54, 22));
   jCmbDName = new JComboBox(new String[] {"人事部", "采购部", "财务部"});
   jCmbDName.setName("部门名称");
   jCmbDName.setBounds(new Rectangle(150, 72, 199, 25));
   jLabelHomePhone = new JLabel("宅        电");
   jLabelHomePhone.setBounds(new Rectangle(90, 136, 54, 22));
   jTextHomePhone = new JTextField();
   jTextHomePhone.setName("宅电");
   jTextHomePhone.setBounds(new Rectangle(150, 136, 200, 25));
   jLabelSex = new JLabel("性        别");
   jLabelSex.setBounds(new Rectangle(90, 104, 54, 22));
   jCmbSex = new JComboBox(new String[] {"男", "女"});
   jCmbSex.setName("性别");
   jCmbSex.setBounds(new Rectangle(150, 104, 199, 25));
   jLabelGrantDeny = new JLabel("权        限");
   jLabelGrantDeny.setBounds(new Rectangle(90, 200, 54, 22));
   jCmbGrantDeny = new JComboBox(new String[] {"基本信息", "采购", "系统维护"});
   jCmbGrantDeny.setName("权限");
   jCmbGrantDeny.setBounds(new Rectangle(150, 200, 199, 25));
   jLabelName = new JLabel("员工姓名");
   jLabelName.setBounds(new Rectangle(440, 40, 54, 22));
   jTextName = new JTextField();
   jTextName.setName("员工姓名");
   jTextName.setBounds(new Rectangle(500, 40, 200, 25));
   jLabelWorkKind = new JLabel("工作性质");
   jLabelWorkKind.setBounds(new Rectangle(440, 72, 54, 22));
   jTextWorkKind = new JTextField();
   jTextWorkKind.setName("工作性质");
   jTextWorkKind.setBounds(new Rectangle(500, 72, 200, 25));
   jLabelBirthday = new JLabel("出生日期");
   jLabelBirthday.setBounds(new Rectangle(440, 104, 54, 22));
   jTextBirthday = new JTextField();
   jTextBirthday.setName("出生日期");
   jTextBirthday.setToolTipText("请按照日期格式输入。例如:1986-12-12");
   jTextBirthday.setBounds(new Rectangle(500, 104, 200, 25));
   jLabelTEL = new JLabel("手       机");
   jLabelTEL.setBounds(new Rectangle(440, 136, 54, 22));
   jTextTEL = new JTextField();
   jTextTEL.setName("手机");
   jTextTEL.setBounds(new Rectangle(500, 136, 200, 25));
   jLabelPwd = new JLabel("密        码");
   jLabelPwd.setBounds(new Rectangle(90, 168, 54, 22));
   jTextPwd = new JPasswordField();
   jTextPwd.setToolTipText("请输入密码");
   jTextPwd.setBounds(new Rectangle(150, 168, 200, 25));
   jLabelNewPwd = new JLabel("确认密码");
   jLabelNewPwd.setBounds(new Rectangle(440, 168, 54, 22));
   jTextNewPwd = new JPasswordField();
   jTextNewPwd.setBounds(new Rectangle(500, 168, 200, 25));

   jBtnAdd = new JButton("添加");
   jBtnAdd.setBounds(new Rectangle(100, 260, 75, 23));
   jBtnAdd.addActionListener(this);
   jBtnUpdate = new JButton("修改");
   jBtnUpdate.setBounds(new Rectangle(210, 260, 75, 23));
   jBtnUpdate.addActionListener(this);
   jBtnDelete = new JButton("删除");
   jBtnDelete.setBounds(new Rectangle(320, 260, 75, 23));
   jBtnDelete.addActionListener(this);
   jBtnSearch = new JButton("查询");
   jBtnSearch.setToolTipText("可以根据员工编号,员工名称,部门编号进行联合查询。(支持模糊查询)");
   jBtnSearch.setBounds(new Rectangle(500, 260, 75, 23));
   jBtnSearch.addActionListener(this);
   jBtnCancel = new JButton("取消");
   jBtnCancel.setBounds(new Rectangle(610, 260, 75, 23));
   jBtnCancel.addActionListener(this);

   jSubPanel = new JPanel(null);
   jSubPanel.add(jLabelID, null);
   jSubPanel.add(jLabelNewPwd, null);
   jSubPanel.add(jTextID, null);
   jSubPanel.add(jLabelName, null);
   jSubPanel.add(jTextName, null);
   jSubPanel.add(jLabelDName, null);
   jSubPanel.add(jCmbDName, null);
   jSubPanel.add(jLabelWorkKind, null);
   jSubPanel.add(jTextWorkKind, null);
   jSubPanel.add(jLabelSex, null);
   jSubPanel.add(jCmbSex, null);
   jSubPanel.add(jLabelBirthday, null);
   jSubPanel.add(jTextBirthday, null);
   jSubPanel.add(jLabelHomePhone, null);
   jSubPanel.add(jTextHomePhone, null);
   jSubPanel.add(jLabelTEL, null);
   jSubPanel.add(jTextTEL, null);
   jSubPanel.add(jLabelPwd, null);
   jSubPanel.add(jTextPwd, null);
   jSubPanel.add(jLabelGrantDeny, null);
   jSubPanel.add(jCmbGrantDeny, null);
   jSubPanel.add(jTextNewPwd, null);
   jSubPanel.add(jBtnAdd, null);
   jSubPanel.add(jBtnUpdate, null);
   jSubPanel.add(jBtnDelete, null);
   jSubPanel.add(jBtnSearch, null);
   jSubPanel.add(jBtnCancel, null);
  }
  return jSubPanel;
 }

 public void actionPerformed(ActionEvent e)
 {
  if(e.getSource().equals(jBtnSearch))
  {
   while(tableModel.getRowCount() > 0)
   {
    tableModel.removeRow(0); // 先清空所有数据
   }
   userDTO = new UserDTO();
   userDTO.setWorkerID(jTextID.getText());
   userDTO.setUserName(jTextName.getText());
   userDTO.setDepartmentName(jCmbDName.getSelectedItem().toString());
   userDAO.setUserDTO(userDTO);
   for(UserDTO user : userDAO.searchWorker())
   {
    tableModel.addRow(user.toArray());
   }
  }
  else if(e.getSource().equals(jBtnAdd))
  {
   if (jSubPanel.getName() != null)
   {
    JOptionPane.showMessageDialog(jSubPanel,"员工编号“" +jTextID.getText()+ "”已存在!");
    return;
   }
   if (!this.userInfo())
    return;
   if(userDAO.addWorker())
   {
    tableModel.addRow(userDTO.toArray());
    this.clearText();
   }
   else
    JOptionPane.showMessageDialog(jSubPanel,"员工编号“" +jTextID.getText()+ "”添加失败!");
  }
  else if(e.getSource().equals(jBtnUpdate))
  {
   if (jSubPanel.getName() == null)
   {
    JOptionPane.showMessageDialog(jSubPanel,"请选择要修改的行");
    return;
   }
   if (!this.userInfo())
    return;
   if(userDAO.updateWorker())
   {
    int rowIndex = Integer.parseInt(jSubPanel.getName());
    tableModel.removeRow(rowIndex);
    tableModel.insertRow(rowIndex, userDTO.toArray());
    this.clearText();
   }
   else
    JOptionPane.showMessageDialog(jSubPanel,"员工编号“" +jTextID.getText()+ "”修改失败!");

  }
  else if(e.getSource().equals(jBtnDelete))
  {
   if (jSubPanel.getName() == null)
   {
    JOptionPane.showMessageDialog(jSubPanel,"请选择要删除的行");
    return;
   }
   if(JOptionPane.showConfirmDialog(jSubPanel, "确实要删除员工编号“" + jTextID.getText() + "”吗?", "系统提示", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) == 0)
   {
    userDTO.setWorkerID(jTextID.getText());
    userDAO.setUserDTO(userDTO);
    if(userDAO.deleteWorker())
    {
     tableModel.removeRow(Integer.parseInt(jSubPanel.getName()));
     this.clearText();
    }
    else
     JOptionPane.showMessageDialog(jSubPanel,"员工编号“" +jTextID.getText()+ "”删除失败!");
   }
  }
  else
   this.clearText();
 }

 private boolean userInfo()
 {
  boolean flag = String.valueOf(jTextPwd.getPassword()).equals(String.valueOf(jTextNewPwd.getPassword()));
  if (flag)
  {
   userDTO.setWorkerID(jTextID.getText());
   userDTO.setUserName(jTextName.getText());
   userDTO.setDepartmentName(jCmbDName.getSelectedItem().toString());
   userDTO.setWorkKind(jTextWorkKind.getText());
   userDTO.setSex(jCmbSex.getSelectedItem().toString());
   userDTO.setBirthday(jTextBirthday.getText());
   userDTO.setHomePhone(jTextHomePhone.getText());
   userDTO.setTEL(jTextTEL.getText());
   userDTO.setPassword(String.valueOf(jTextPwd.getPassword()));
   userDTO.setGrantDeny(jCmbGrantDeny.getSelectedItem().toString());
   userDAO.setUserDTO(userDTO);
  }
  else
  {
   JOptionPane.showMessageDialog(jSubPanel,"两次输入的密码不匹配,请重新输入!");
   jTextPwd.setText(null);
   jTextNewPwd.setText(null);
   jTextPwd.requestFocusInWindow();
  }
  return flag;
 }

 private void clearText()
 {
  for(Component cpt : jSubPanel.getComponents())
  {
   if(cpt instanceof JTextField)    //JAVA(instanceof) == .NET (is)
    ((JTextField)cpt).setText(null); // 清空文本框
  }
  jSubPanel.setName(null);
  jTextID.setEditable(true);
  jTextID.requestFocusInWindow(); // 设置焦点
 }
}

原创粉丝点击