数据库表:员工表+管理员表
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pkg20221128_staffsystem;
import pkg20221128_staffsystem.dal.dao.StaffDao;
import pkg20221128_staffsystem.dal.dao.UserDao;
import pkg20221128_staffsystem.dal.daoimpl.StaffDaoImpl;
import pkg20221128_staffsystem.dal.daoimpl.UserDaoImpl;
import pkg20221128_staffsystem.dal.entity.Staff;
import pkg20221128_staffsystem.dal.entity.User;
import pkg20221128_staffsystem.dal.util.DBUtil;
import pkg20221128_staffsystem.gui.jframe.LoginJFrame;
/**
*
* @author mikha
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
//
// DBUtil.createConnection();
// // User user=new User(0,"root","123");
// Staff staff=new Staff(20,"小米","男",18,"123456","前端开发","专科");
// // UserDao userDao=new UserDaoImpl();
// StaffDao staffDao=new StaffDaoImpl();
// // userDao.addUser(user);
// staffDao.addStaff(staff);
LoginJFrame loginJFrame=new LoginJFrame();
loginJFrame.setVisible(true);
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pkg20221128_staffsystem.bll.model;
/**
*业务逻辑层
* @author mikha
*/
public class UserModel {
private String name;
private String password;
public UserModel() {
}
public UserModel(String name, String password) {
this.name = name;
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pkg20221128_staffsystem.bll.service;
import java.util.List;
import pkg20221128_staffsystem.dal.entity.Staff;
/**
*员工的业务逻辑
* @author mikha
*/
public interface StaffService {
public boolean addStaff(Staff staff);
public boolean updateStaff(Staff staff);
public Staff getStaffbyID(int id);
public Staff getStaffbyName(String name);
public List<Staff> getAllStaff();
public boolean delStaffbyName(String name);
public void toExcel(List<Staff> students,String fileName);
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pkg20221128_staffsystem.bll.service;
import pkg20221128_staffsystem.bll.model.UserModel;
/**
*
* @author mikha
*/
public interface UserService {
//注册和登入
public boolean register(UserModel userModel);
public boolean login(UserModel userModel);
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pkg20221128_staffsystem.bll.serviceimpl;
import com.alibaba.excel.EasyExcel;
import java.util.List;
import pkg20221128_staffsystem.bll.service.StaffService;
import pkg20221128_staffsystem.dal.dao.StaffDao;
import pkg20221128_staffsystem.dal.daoimpl.StaffDaoImpl;
import pkg20221128_staffsystem.dal.entity.Staff;
/**
*
* @author mikha
*/
public class StaffServiceImpl implements StaffService{
private StaffDao staffDao;
public StaffServiceImpl() {
staffDao=new StaffDaoImpl();
}
@Override
public boolean addStaff(Staff staff) {
return staffDao.addStaff(staff);
}
@Override
public boolean updateStaff(Staff staff) {
return staffDao.updateStaff(staff);
}
@Override
public Staff getStaffbyID(int id) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public Staff getStaffbyName(String name) {
return staffDao.getStaffbyName(name);
}
@Override
public List<Staff> getAllStaff() {
return staffDao.getAllStaff();
}
@Override
public void toExcel(List<Staff> staffs, String fileName) {
EasyExcel.write(fileName,Staff.class).sheet("Staff").doWrite(staffs);
}
@Override
public boolean delStaffbyName(String name) {
return staffDao.delStaffbyName(name);
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pkg20221128_staffsystem.bll.serviceimpl;
import pkg20221128_staffsystem.bll.model.UserModel;
import pkg20221128_staffsystem.bll.service.UserService;
import pkg20221128_staffsystem.dal.dao.UserDao;
import pkg20221128_staffsystem.dal.daoimpl.UserDaoImpl;
import pkg20221128_staffsystem.dal.entity.User;
/**
*
* @author mikha
*/
public class UserServiceImpl implements UserService{
@Override
public boolean register(UserModel userModel) {
UserDao userDao=new UserDaoImpl();
User user=new User();
user.setUname(userModel.getName());
user.setUpassword(userModel.getPassword());
return userDao.addUser(user);
}
@Override
public boolean login(UserModel userModel) {
UserDao userDao=new UserDaoImpl();
return userDao.exists(userModel.getName(), userModel.getPassword());
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pkg20221128_staffsystem.dal.dao;
import java.util.List;
import pkg20221128_staffsystem.dal.entity.Staff;
/**
*
* @author mikha
*/
public interface StaffDao {
public boolean addStaff(Staff sta);
public boolean delStaffbyName(String name);
public boolean updateStaff(Staff sta);//修改
public Staff getStaffbyID(int id);
public Staff getStaffbyName(String name);
public List<Staff> getAllStaff();
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pkg20221128_staffsystem.dal.dao;
import pkg20221128_staffsystem.dal.entity.User;
/**
*
* @author mikha
*/
public interface UserDao {
//增删改查
public boolean addUser(User user);
public boolean delUserbyID(int id);
public boolean updateUser(User user);
public User getUserbyID(int id);
//是否存在
public boolean exists(String name,String password);
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pkg20221128_staffsystem.dal.daoimpl;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import pkg20221128_staffsystem.dal.dao.StaffDao;
import pkg20221128_staffsystem.dal.entity.Staff;
import pkg20221128_staffsystem.dal.util.DBUtil;
/**
*
* @author mikha
*/
public class StaffDaoImpl implements StaffDao{
@Override
public boolean addStaff(Staff sta) {
String insert = "insert into staff_information(name,gender,age,phone,post,education) "
+"values('"+sta.getName()+"','"+sta.getGender()+"','"+sta.getAge()+"','"+sta.getPhone()+"','"+sta.getPost()+"','"+sta.getEducation()+"')";
try {
DBUtil.runUpdate(insert);
return true;
} catch (SQLException ex) {
Logger.getLogger(UserDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
}
return false;
}
@Override
public boolean delStaffbyName(String name) {
String delete = "delete from staff_information where name = '"+name+"'";
try {
DBUtil.runUpdate(delete);
return true;
} catch (SQLException ex) {
Logger.getLogger(StaffDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
}
return false;
}
@Override
public boolean updateStaff(Staff sta) {//修改
String insert="update staff_information set name='"+sta.getName()+"',gender='"+sta.getGender()+
"',age="+sta.getAge()+",phone='"+sta.getPhone()+"',post='"+sta.getPost()+"',education='"+sta.getEducation()+"' where id="+sta.getId();
System.out.println(insert);
try {
DBUtil.runUpdate(insert);
return true;
} catch (SQLException ex) {
Logger.getLogger(StaffDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
}
return false;
}
@Override
public Staff getStaffbyID(int id) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public Staff getStaffbyName(String name) {
String select="select * from staff_information where name='"+name+"'";
try {
// List<Student> list = new ArrayList<Student>();
// Staff staff=new Staff();
Staff staff = new Staff();
ResultSet rs=DBUtil.runQuery(select);
while(rs.next())
{
staff.setId(rs.getInt("id"));
staff.setName(rs.getString("name"));
staff.setGender(rs.getString("gender"));
staff.setAge(rs.getInt("age"));
staff.setPhone(rs.getString("phone"));
staff.setPost(rs.getString("post"));
staff.setEducation(rs.getString("education"));
// list.add(student);
}
DBUtil.realeaseAll();
// return list;
return staff;
} catch (SQLException ex) {
Logger.getLogger(UserDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
@Override
public List<Staff> getAllStaff() {
String select="select * from staff_information";
try {
List<Staff> staffs = new ArrayList<Staff>();
ResultSet rs=DBUtil.runQuery(select);
while(rs.next())
{
Staff staff = new Staff();
staff.setId(rs.getInt("id"));
staff.setName(rs.getString("name"));
staff.setGender(rs.getString("gender"));
staff.setAge(rs.getInt("age"));
staff.setPhone(rs.getString("phone"));
staff.setPost(rs.getString("post"));
staff.setEducation(rs.getString("education"));
staffs.add(staff);
}
DBUtil.realeaseAll();
return staffs;
} catch (SQLException ex) {
Logger.getLogger(UserDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
}
return null; //To change body of generated methods, choose Tools | Templates.
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pkg20221128_staffsystem.dal.daoimpl;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import pkg20221128_staffsystem.dal.dao.UserDao;
import pkg20221128_staffsystem.dal.entity.User;
import pkg20221128_staffsystem.dal.util.DBUtil;
/**
*
* @author mikha
*/
public class UserDaoImpl implements UserDao{
@Override
public boolean addUser(User user) {
String insert="insert user00(uname,upassword) values('"+user.getUname()+"','"+user.getUpassword()+"')";
System.out.println(insert);
try {
DBUtil.runUpdate(insert);
return true;
} catch (SQLException ex) {
Logger.getLogger(UserDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
DBUtil.realeaseAll();
return false;
}
}
@Override
public boolean delUserbyID(int id) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public boolean updateUser(User user) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public User getUserbyID(int id) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public boolean exists(String name, String password) {//判断用户名和密码是否存在
String select="select * from user00 where uname='"+name+"' and upassword='"+password+"'";
System.out.println(select);
try {
ResultSet rs= DBUtil.runQuery(select);
if(rs.next())
{
DBUtil.realeaseAll();
return true;
}
else
{
DBUtil.realeaseAll();
return false;
}
} catch (SQLException ex) {
Logger.getLogger(UserDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
DBUtil.realeaseAll();
return false;
}
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pkg20221128_staffsystem.dal.entity;
/**
*
* @author mikha
*/
public class Staff {
private int id;
private String name;
private String gender;
private int age;
private String phone;
private String post;
private String education;
public Staff() {
}
public Staff(int id, String name, String gender, int age, String phone, String post, String education) {
this.id = id;
this.name = name;
this.gender = gender;
this.age = age;
this.phone = phone;
this.post = post;
this.education = education;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getPost() {
return post;
}
public void setPost(String post) {
this.post = post;
}
public String getEducation() {
return education;
}
public void setEducation(String education) {
this.education = education;
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pkg20221128_staffsystem.dal.entity;
/**
*
* @author mikha
*/
public class User {
private int uid;
private String uname;
private String upassword;
public User() {
}
public User(int uid, String uname, String upassword) {
this.uid = uid;
this.uname = uname;
this.upassword = upassword;
}
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getUpassword() {
return upassword;
}
public void setUpassword(String upassword) {
this.upassword = upassword;
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pkg20221128_staffsystem.dal.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author bob50
*/
public class DBUtil {
private static String driver = "com.mysql.jdbc.Driver";
private static String URL = "jdbc:mysql://localhost:3306/rg1db?useUnicode=true&characterEncoding=utf-8";
private static Connection con = null;
private static Statement smt = null;
private static ResultSet rs = null;
public static Connection createConnection() {
try {
Class.forName(driver);
return DriverManager.getConnection(URL, "root", "111111");
} catch (SQLException e) {
System.out.println(e.getMessage());
e.printStackTrace();
} catch (java.lang.ClassNotFoundException e) {
System.out.println("Can't load Driver");
}
return null;
}
public static int runUpdate(String sql) throws SQLException {
int count = 0;
if (con == null) {
con = createConnection();
}
if (smt == null) {
smt = con.createStatement();
}
count = smt.executeUpdate(sql);
if (smt != null) {
smt.close();
smt = null;
}
if (con != null) {
con.close();
con = null;
}
return count;
}
public static ResultSet runQuery(String sql) throws SQLException {//运行查询
if (con == null) {
con = createConnection();
}
if (smt == null) {
smt = con.createStatement();
}
return smt.executeQuery(sql);
}
public static void realeaseAll() {//释放所有链接资源
if (rs != null) {
try {
rs.close();
rs = null;
} catch (SQLException e) {
e.printStackTrace();
}
}
if (smt != null) {
try {
smt.close();
smt = null;
} catch (SQLException e) {
e.printStackTrace();
}
}
if (con != null) {
try {
con.close();
con = null;
} catch (SQLException ex) {
Logger.getLogger(DBUtil.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
public static void closeConnection(Connection conn) {
System.out.println("...");
try {
if (conn != null) {
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pkg20221128_staffsystem.gui.datamodel;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author aaa
*/
public class ClassRefect
{
//************��ȡ���й��е��ֶ�********************
public static Field[] getAllPublicAttribute(Object obj)
{
Class refClass = obj.getClass();
//System.out.println(refClass);
return refClass.getFields();
}
//************��ȡ���ж�����ֶ�(����˽�С��ܱ�����Ĭ�ϵ�)********************
public static Field[] getAllAttribute(Object obj)
{
Class refClass = obj.getClass();
//System.out.println(refClass);
return refClass.getDeclaredFields();
}
//************��ȡ���й��еķ���********************
public static Method[] getAllPublicMethod(Object obj)
{
Class refClass = obj.getClass();
//System.out.println(refClass);
return refClass.getMethods();
}
//************��ȡ���е�Get����********************
public static List<Method> getRequireGetMethod(Object obj,List<String> colNames)
{
List<Method> getMethods=new ArrayList<>();
List<Method> requireGetMethod=new ArrayList<>();
Class refClass = obj.getClass();
//System.out.println(refClass);
Method[] methodArray = refClass.getMethods();
for(Method method:methodArray)
{
if(method.getName().contains("get")){
getMethods.add(method);
//System.out.println(m.getName());
}
}
for(String colName:colNames)
{
for(Method getMethod:getMethods)
{
if(getMethod.getName().toLowerCase().contains(colName))
{
//System.out.println(getMethod.getName());
requireGetMethod.add(getMethod);
}
}
}
//System.out.println(requireGetMethod.size());
return requireGetMethod;
}
//************�������е�Get����********************
public static void invokeAllGetMethod(Object obj)
{
Class refClass = obj.getClass();
//System.out.println(refClass);
Method[] methodArray = refClass.getMethods();
for (Method m : methodArray) {
//System.out.println(m);
if(m.getName().contains("get")){
try {
System.out.println(m.getName());
System.out.println(m.invoke(obj, null));
} catch (IllegalAccessException ex) {
Logger.getLogger(ClassRefect.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalArgumentException ex) {
Logger.getLogger(ClassRefect.class.getName()).log(Level.SEVERE, null, ex);
} catch (InvocationTargetException ex) {
Logger.getLogger(ClassRefect.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pkg20221128_staffsystem.gui.datamodel;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.table.AbstractTableModel;
/**
*
* @author bob50
* @param <T>
*/
public class SimpleTableModel<T> extends AbstractTableModel
{
protected List<String> cols;//数据表的字段名
protected List<T> rows;//数据集合
protected List<String> colNames;//表字段名称
private List<Method> getMethods;
public SimpleTableModel(List<String> cols, List<T> rows,List<String> colNames) {
this.cols = cols;
this.rows = rows;
this.colNames = colNames;
if(rows.get(0)!=null&&rows.size()>0)
this.getMethods=ClassRefect.getRequireGetMethod(rows.get(0),colNames);
}
public List<String> getCols() {
return cols;
}
public void setCols(List<String> cols) {
this.cols = cols;
}
public List<T> getRows() {
return rows;
}
public void setRows(List<T> rows) {
this.rows = rows;
}
@Override
public int getRowCount() {
return rows.size();
}
@Override
public int getColumnCount() {
return cols.size();
}
@Override
public String getColumnName(int column) {
return cols.get(column);
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
try {
//List<Method> getMethods=ClassRefect.getRequireGetMethod(rows.get(rowIndex),colNames);
if(getMethods.size()>0)
return getMethods.get(columnIndex).invoke(rows.get(rowIndex), null);
else return null;
} catch (IllegalAccessException ex) {
Logger.getLogger(SimpleTableModel.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalArgumentException ex) {
Logger.getLogger(SimpleTableModel.class.getName()).log(Level.SEVERE, null, ex);
} catch (InvocationTargetException ex) {
Logger.getLogger(SimpleTableModel.class.getName()).log(Level.SEVERE, null, ex);
}
return "";
}
}
下面为该界面的代码
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pkg20221128_staffsystem.gui.jframe;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import javax.swing.AbstractAction;
import javax.swing.ActionMap;
import javax.swing.InputMap;
import javax.swing.JComponent;
import javax.swing.JOptionPane;
import javax.swing.KeyStroke;
import pkg20221128_staffsystem.bll.service.StaffService;
import pkg20221128_staffsystem.bll.serviceimpl.StaffServiceImpl;
import pkg20221128_staffsystem.dal.entity.Staff;
/**
*
* @author apple
*/
public class AddStaffDialog extends javax.swing.JDialog {
/**
* A return status code - returned if Cancel button has been pressed
*/
public static final int RET_CANCEL = 0;
/**
* A return status code - returned if OK button has been pressed
*/
public static final int RET_OK = 1;
private StaffService staffService;
/**
* Creates new form AddStudentDialog
*/
public AddStaffDialog(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
staffService=new StaffServiceImpl();
// Close the dialog when Esc is pressed
String cancelName = "cancel";
InputMap inputMap = getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), cancelName);
ActionMap actionMap = getRootPane().getActionMap();
actionMap.put(cancelName, new AbstractAction() {
public void actionPerformed(ActionEvent e) {
doClose(RET_CANCEL);
}
});
}
/**
* @return the return status of this dialog - one of RET_OK or RET_CANCEL
*/
public int getReturnStatus() {
return returnStatus;
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
okButton = new javax.swing.JButton();
cancelButton = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jTextField2 = new javax.swing.JTextField();
jTextField3 = new javax.swing.JTextField();
jTextField4 = new javax.swing.JTextField();
jTextField5 = new javax.swing.JTextField();
jLabel6 = new javax.swing.JLabel();
jTextField6 = new javax.swing.JTextField();
jLabel7 = new javax.swing.JLabel();
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
closeDialog(evt);
}
});
okButton.setText("OK");
okButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
okButtonActionPerformed(evt);
}
});
cancelButton.setText("Cancel");
cancelButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cancelButtonActionPerformed(evt);
}
});
jLabel1.setText("姓名:");
jLabel2.setText("性别:");
jLabel3.setText("年龄:");
jLabel4.setText("手机:");
jLabel5.setText("职位:");
jTextField3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField3ActionPerformed(evt);
}
});
jLabel6.setText("学历:");
jLabel7.setText("输入所添加的员工信息");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(63, 63, 63)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addComponent(jLabel2)
.addComponent(jLabel3)
.addComponent(jLabel4)
.addComponent(jLabel5)
.addComponent(jLabel6))
.addGap(26, 26, 26)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTextField5, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 172, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 172, Short.MAX_VALUE)
.addComponent(jTextField2)
.addComponent(jTextField3)
.addComponent(jTextField4)
.addComponent(jTextField6, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 172, Short.MAX_VALUE)))
.addComponent(jLabel7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(133, 133, 133))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(okButton, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cancelButton)))
.addContainerGap())
);
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {cancelButton, okButton});
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGap(23, 23, 23)
.addComponent(jLabel7)
.addGap(29, 29, 29)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(34, 34, 34)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(26, 26, 26)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(30, 30, 30)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4))
.addGap(29, 29, 29)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(jTextField6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(29, 29, 29)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextField5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel6))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 62, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(cancelButton)
.addComponent(okButton))
.addContainerGap())
);
getRootPane().setDefaultButton(okButton);
pack();
}// </editor-fold>
private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {
Staff staff=new Staff();
staff.setName(jTextField1.getText());
staff.setGender(jTextField2.getText());
staff.setAge(Integer.parseInt(jTextField3.getText()));
staff.setPhone(jTextField4.getText());
staff.setPost(jTextField6.getText());
staff.setEducation(jTextField5.getText());
if(staffService.addStaff(staff))
{
JOptionPane.showMessageDialog(this, "添加成功!");
}
else
{
JOptionPane.showMessageDialog(this, "添加失败!");
}
doClose(RET_OK);
}
private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {
doClose(RET_CANCEL);
}
/**
* Closes the dialog
*/
private void closeDialog(java.awt.event.WindowEvent evt) {
doClose(RET_CANCEL);
}
private void jTextField3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void doClose(int retStatus) {
returnStatus = retStatus;
setVisible(false);
dispose();
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(AddStaffDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(AddStaffDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(AddStaffDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(AddStaffDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
/* Create and display the dialog */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
AddStaffDialog dialog = new AddStaffDialog(new javax.swing.JFrame(), true);
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton cancelButton;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
private javax.swing.JTextField jTextField4;
private javax.swing.JTextField jTextField5;
private javax.swing.JTextField jTextField6;
private javax.swing.JButton okButton;
// End of variables declaration
private int returnStatus = RET_CANCEL;
}
下面为该界面的代码
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pkg20221128_staffsystem.gui.jframe;
import javax.swing.JOptionPane;
import pkg20221128_staffsystem.bll.model.UserModel;
import pkg20221128_staffsystem.bll.service.UserService;
import pkg20221128_staffsystem.bll.serviceimpl.UserServiceImpl;
/**
*
* @author mikha
*/
public class LoginJFrame extends javax.swing.JFrame {
private UserService userService;
/**
* Creates new form LoginJFrame
*/
public LoginJFrame() {
userService=new UserServiceImpl();
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jTextField2 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jLabel1.setText("用户名");
jLabel2.setText("密码");
jTextField1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField1ActionPerformed(evt);
}
});
jButton1.setText("登录");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jButton2.setText("注册");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(133, 133, 133)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel2)
.addComponent(jLabel1))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createSequentialGroup()
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 74, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 77, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 169, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 169, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(175, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(73, 73, 73)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(23, 23, 23)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(41, 41, 41)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton1)
.addComponent(jButton2))
.addContainerGap(98, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
UserModel userModel=new UserModel(jTextField1.getText(),jTextField2.getText());
if(userService.login(userModel))
{
//显示员工管理界面
MainJFrame mainJFrame=new MainJFrame();
mainJFrame.setVisible(true);
this.setVisible(false);
this.dispose();//登入窗体释放掉
}
else
{
JOptionPane.showMessageDialog(this, "账号或密码错误");
}
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
UserModel userModel=new UserModel(jTextField1.getText(),jTextField2.getText());
if(userService.register(userModel))
{
JOptionPane.showMessageDialog(this, "注册成功");
}
else
{
JOptionPane.showMessageDialog(this, "注册失败");
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(LoginJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(LoginJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(LoginJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(LoginJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new LoginJFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
// End of variables declaration
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pkg20221128_staffsystem.gui.jframe;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import pkg20221128_staffsystem.bll.service.StaffService;
import pkg20221128_staffsystem.bll.serviceimpl.StaffServiceImpl;
import pkg20221128_staffsystem.dal.entity.Staff;
import pkg20221128_staffsystem.gui.datamodel.SimpleTableModel;
/**
*
* @author mikha
*/
public class MainJFrame extends javax.swing.JFrame {
private StaffService staffService;
private SimpleTableModel<Staff> staffTableModel;//数据模型
private List<String>cols;
private List<Staff> staffList;
private List<String> colName;
/**
* Creates new form MainJFrame
*/
public MainJFrame() {
staffService=new StaffServiceImpl();
cols=new ArrayList<>();
cols.add("姓名");
cols.add("性别");
cols.add("年龄");
cols.add("电话");
cols.add("职位");
cols.add("学历");
staffList=staffService.getAllStaff();
colName=new ArrayList<>();
colName.add("name");
colName.add("gender");
colName.add("age");
colName.add("phone");
colName.add("post");
colName.add("education");
staffTableModel=new SimpleTableModel<>(cols,staffList,colName);
initComponents();
jTable1.setModel(staffTableModel);
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jMenuBar1 = new javax.swing.JMenuBar();
jMenu1 = new javax.swing.JMenu();
jMenuItem1 = new javax.swing.JMenuItem();
jMenuItem2 = new javax.swing.JMenuItem();
jMenu2 = new javax.swing.JMenu();
jMenuItem3 = new javax.swing.JMenuItem();
jMenuItem4 = new javax.swing.JMenuItem();
jMenuItem7 = new javax.swing.JMenuItem();
jMenu3 = new javax.swing.JMenu();
jMenuItem5 = new javax.swing.JMenuItem();
jMenuItem8 = new javax.swing.JMenuItem();
jMenu4 = new javax.swing.JMenu();
jMenu5 = new javax.swing.JMenu();
jMenuItem6 = new javax.swing.JMenuItem();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jLabel1.setText("员工管理系统");
jLabel1.setToolTipText("");
getContentPane().add(jLabel1, java.awt.BorderLayout.NORTH);
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(jTable1);
getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);
jMenu1.setText("文件");
jMenuItem1.setText("导出Excel");
jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem1ActionPerformed(evt);
}
});
jMenu1.add(jMenuItem1);
jMenuItem2.setText("退出");
jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem2ActionPerformed(evt);
}
});
jMenu1.add(jMenuItem2);
jMenuBar1.add(jMenu1);
jMenu2.setText("编辑");
jMenuItem3.setText("添加员工");
jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem3ActionPerformed(evt);
}
});
jMenu2.add(jMenuItem3);
jMenuItem4.setText("删除员工");
jMenuItem4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem4ActionPerformed(evt);
}
});
jMenu2.add(jMenuItem4);
jMenuItem7.setText("修改员工");
jMenuItem7.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem7ActionPerformed(evt);
}
});
jMenu2.add(jMenuItem7);
jMenuBar1.add(jMenu2);
jMenu3.setText("查找");
jMenuItem5.setText("按名字查找");
jMenuItem5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem5ActionPerformed(evt);
}
});
jMenu3.add(jMenuItem5);
jMenuItem8.setText("显示所有员工");
jMenuItem8.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem8ActionPerformed(evt);
}
});
jMenu3.add(jMenuItem8);
jMenuBar1.add(jMenu3);
jMenu4.setText("统计");
jMenuBar1.add(jMenu4);
jMenu5.setText("帮助");
jMenuItem6.setText("关于");
jMenuItem6.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem6ActionPerformed(evt);
}
});
jMenu5.add(jMenuItem6);
jMenuBar1.add(jMenu5);
setJMenuBar(jMenuBar1);
pack();
}// </editor-fold>
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
// TODO add your handling code here:
JFileChooser jf = new JFileChooser();
jf.setFileSelectionMode(JFileChooser.SAVE_DIALOG | JFileChooser.DIRECTORIES_ONLY);
jf.showDialog(this, "保存文件");
File fi = jf.getSelectedFile();
String fimeName=fi.getAbsolutePath()+"\\staffs.xlsx";
staffService.toExcel(staffList, fimeName);
}
private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
//退出
this.setVisible(false);
this.dispose();
System.exit(0);
}
private void jMenuItem6ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
JOptionPane.showMessageDialog(this, "2020软工1班员工管理系统\n");
}
private void jMenuItem5ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String name= JOptionPane.showInputDialog(this, "输入需要查询的员工姓名");
Staff staff = staffService.getStaffbyName(name);
staffList.clear();
staffList.add(staff);
staffTableModel.setRows(staffList);
staffTableModel.fireTableDataChanged();
}
private void jMenuItem8ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
//显示所有员工
staffList.clear();
staffList=staffService.getAllStaff();
staffTableModel.setRows(staffList);
staffTableModel.fireTableDataChanged();
}
private void jMenuItem7ActionPerformed(java.awt.event.ActionEvent evt) {
/* String name= JOptionPane.showInputDialog(this, "输入需要修改的员工姓名");
Staff staff = staffService.getStaffbyName(name);
String id= JOptionPane.showInputDialog(this, staff.getId()); */
UpdateStaffDialog updateStaffDialog=new UpdateStaffDialog(this, rootPaneCheckingEnabled);
updateStaffDialog.setVisible(true);//显示出来
//staff存储查询到的我们要修改的员工信息
int status=updateStaffDialog.getReturnStatus();
if(status==1)
{
staffList.clear();
staffList=staffService.getAllStaff();
staffTableModel.setRows(staffList);
staffTableModel.fireTableDataChanged();
}
}
private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
//删除员工
String name= JOptionPane.showInputDialog(this, "输入需要删除的员工姓名");
Staff staff = staffService.getStaffbyName(name);
staffService.delStaffbyName(name);
staffList.clear();
staffList=staffService.getAllStaff();
staffTableModel.setRows(staffList);
staffTableModel.fireTableDataChanged();
}
private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
//添加员工
AddStaffDialog addStaffDialog=new AddStaffDialog(this, rootPaneCheckingEnabled);
addStaffDialog.setVisible(true);//显示出来
int status=addStaffDialog.getReturnStatus();
if(status==1)
{
staffList.clear();
staffList=staffService.getAllStaff();
staffTableModel.setRows(staffList);
staffTableModel.fireTableDataChanged();
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(MainJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(MainJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(MainJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(MainJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new MainJFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JLabel jLabel1;
private javax.swing.JMenu jMenu1;
private javax.swing.JMenu jMenu2;
private javax.swing.JMenu jMenu3;
private javax.swing.JMenu jMenu4;
private javax.swing.JMenu jMenu5;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JMenuItem jMenuItem1;
private javax.swing.JMenuItem jMenuItem2;
private javax.swing.JMenuItem jMenuItem3;
private javax.swing.JMenuItem jMenuItem4;
private javax.swing.JMenuItem jMenuItem5;
private javax.swing.JMenuItem jMenuItem6;
private javax.swing.JMenuItem jMenuItem7;
private javax.swing.JMenuItem jMenuItem8;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
// End of variables declaration
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pkg20221128_staffsystem.gui.jframe;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import javax.swing.AbstractAction;
import javax.swing.ActionMap;
import javax.swing.InputMap;
import javax.swing.JComponent;
import javax.swing.JOptionPane;
import javax.swing.KeyStroke;
import pkg20221128_staffsystem.bll.service.StaffService;
import pkg20221128_staffsystem.bll.serviceimpl.StaffServiceImpl;
import pkg20221128_staffsystem.dal.entity.Staff;
/**
*
* @author apple
*/
public class UpdateStaffDialog extends javax.swing.JDialog {
/**
* A return status code - returned if Cancel button has been pressed
*/
public static final int RET_CANCEL = 0;
/**
* A return status code - returned if OK button has been pressed
*/
public static final int RET_OK = 1;
private StaffService staffService;
private Staff staff;
/**
* Creates new form AddStudentDialog
*/
public UpdateStaffDialog(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
staffService=new StaffServiceImpl();
// Close the dialog when Esc is pressed
String cancelName = "cancel";
InputMap inputMap = getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), cancelName);
ActionMap actionMap = getRootPane().getActionMap();
actionMap.put(cancelName, new AbstractAction() {
public void actionPerformed(ActionEvent e) {
doClose(RET_CANCEL);
}
});
}
/**
* @return the return status of this dialog - one of RET_OK or RET_CANCEL
*/
public int getReturnStatus() {
return returnStatus;
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
okButton = new javax.swing.JButton();
cancelButton = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jTextField2 = new javax.swing.JTextField();
jTextField3 = new javax.swing.JTextField();
jTextField4 = new javax.swing.JTextField();
jTextField5 = new javax.swing.JTextField();
jLabel6 = new javax.swing.JLabel();
jTextField6 = new javax.swing.JTextField();
jLabel7 = new javax.swing.JLabel();
jTextField7 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jSeparator1 = new javax.swing.JSeparator();
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
closeDialog(evt);
}
});
okButton.setText("OK");
okButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
okButtonActionPerformed(evt);
}
});
cancelButton.setText("Cancel");
cancelButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cancelButtonActionPerformed(evt);
}
});
jLabel1.setText("姓名:");
jLabel2.setText("性别:");
jLabel3.setText("年龄:");
jLabel4.setText("手机:");
jLabel5.setText("职位:");
jTextField3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField3ActionPerformed(evt);
}
});
jLabel6.setText("学历:");
jLabel7.setText("输入所修改的人姓名:");
jTextField7.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField7ActionPerformed(evt);
}
});
jButton1.setText("确定");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(okButton, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cancelButton)
.addContainerGap())
.addGroup(layout.createSequentialGroup()
.addGap(63, 63, 63)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addComponent(jLabel2)
.addComponent(jLabel3)
.addComponent(jLabel4)
.addComponent(jLabel5)
.addComponent(jLabel6))
.addGap(26, 26, 26)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTextField5, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 172, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 172, Short.MAX_VALUE)
.addComponent(jTextField2)
.addComponent(jTextField3)
.addComponent(jTextField4)
.addComponent(jTextField6, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 172, Short.MAX_VALUE)))
.addGap(113, 113, 113))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 466, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGap(18, 18, 18)
.addComponent(jTextField7, javax.swing.GroupLayout.PREFERRED_SIZE, 133, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(15, 15, 15)
.addComponent(jButton1)
.addGap(73, 73, 73))
);
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {cancelButton, okButton});
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel7)
.addComponent(jTextField7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton1))
.addGap(6, 6, 6)
.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(34, 34, 34)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(26, 26, 26)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(30, 30, 30)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4))
.addGap(29, 29, 29)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(jTextField6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(29, 29, 29)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextField5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel6))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 58, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(cancelButton)
.addComponent(okButton))
.addContainerGap())
);
getRootPane().setDefaultButton(okButton);
pack();
}// </editor-fold>
private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {
staff.setName(jTextField1.getText());
staff.setGender(jTextField2.getText());
staff.setAge(Integer.parseInt(jTextField3.getText()));
staff.setPhone(jTextField4.getText());
staff.setPost(jTextField6.getText());
staff.setEducation(jTextField5.getText());
if(staffService.updateStaff(staff))
{
JOptionPane.showMessageDialog(this, "修改成功!");
}
else
{
JOptionPane.showMessageDialog(this, "修改失败!");
}
doClose(RET_OK);
}
private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {
doClose(RET_CANCEL);
}
/**
* Closes the dialog
*/
private void closeDialog(java.awt.event.WindowEvent evt) {
doClose(RET_CANCEL);
}
private void jTextField3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code her
// 确定
String name= jTextField7.getText();
staff = staffService.getStaffbyName(name);
// JOptionPane.showInputDialog(this, staff.getId());
jTextField1.setText(staff.getName());
jTextField2.setText(staff.getGender());
jTextField3.setText(Integer.toString(staff.getAge()));
jTextField4.setText(staff.getPhone());
jTextField6.setText(staff.getPost());
jTextField5.setText(staff.getEducation());
}
private void jTextField7ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void doClose(int retStatus) {
returnStatus = retStatus;
setVisible(false);
dispose();
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(UpdateStaffDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(UpdateStaffDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(UpdateStaffDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(UpdateStaffDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
//</editor-fold>
/* Create and display the dialog */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
UpdateStaffDialog dialog = new UpdateStaffDialog(new javax.swing.JFrame(), true);
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton cancelButton;
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
private javax.swing.JTextField jTextField4;
private javax.swing.JTextField jTextField5;
private javax.swing.JTextField jTextField6;
private javax.swing.JTextField jTextField7;
private javax.swing.JButton okButton;
// End of variables declaration
private int returnStatus = RET_CANCEL;
}
运行展示: