代码结构:

business 包

EmployeeManager类

data包

AccessFile类

ui包

AddFrame类

MainFrame类

vo包

Employee类

效果展示:

EmployeeManager类:

package business;import java.util.*;import data.AccessFile;
import vo.Employee;//实现所有的业务功能:新增员工,修改员工信息,删除员工信息,各种查询员工信息
public class EmployeeManager {AccessFile af;public EmployeeManager(){af=new AccessFile();}/*** 新增员工* @param e:待新增的员工对象* @return:新增的结果的布尔值*/public boolean addEmployee(Employee e){boolean result=false;try {//从文件读取集合,讲雇员加入集合,再将集合写入文件List employees=af.readFile();employees.add(e);af.writeFile(employees);result=true;} catch (Exception e2) {e2.printStackTrace();}return result;}//获取所有员工的信息public List getEmployees() {return af.readFile();}//根据id号进行查询public Employee findEmployeeByID(String id) {Employee employee=null;//得到所有员工List<Employee> employees=this.getEmployees();for (Employee ee : employees) {if (ee.getId().equals(id)) {employee=ee;break;}}return employee;}//根据name进行查询public List<Employee> findEmployeeByName(String name) {List<Employee> emps=new ArrayList<Employee>();//得到所有员工List<Employee> employees=this.getEmployees();for(Employee ee:employees) {if (ee.getName().contains(name)) {emps.add(ee);}}return emps;}//用性别查找public List<Employee> findEmployeeBysex(String sex) {List<Employee> emps=new ArrayList<Employee>();//得到所有员工List<Employee> employees=this.getEmployees();for(Employee ee:employees) {if (ee.getSex().equals(sex)) {emps.add(ee);}}return emps;}public boolean deleteEmployee(String id) {boolean result = false;try {List<Employee> employees = this.getEmployees();Employee e = this.findEmployeeByID(id);if(e == null) {return false;}for (int i = 0; i<employees.size();i++) {Employee ee = employees.get(i);if(ee.getId().equals(id)) {employees.remove(i);af.writeFile(employees);result = true;break;}}}catch(Exception ex) {ex.getStackTrace();}return result;}/*** 修改雇员* @param id:雇员id号* @param newemp:新的雇员信息* @return*/public boolean updateEmployee(String id, Employee newemp){boolean result=false;try {List<Employee> employees=this.getEmployees();for(Employee ee:employees){if(ee.getId().equals(id)){ee.setPost(newemp.getPost());ee.setName(newemp.getName());ee.setSex(newemp.getSex());ee.setDuty(newemp.getDuty());ee.setDegree(newemp.getDegree());ee.setDept(newemp.getDept());break;}}af.writeFile(employees);result=true;}catch(Exception ex){ex.printStackTrace();}return result;}
}

AccessFile类:

package data;import java.io.*;
import java.util.ArrayList;
import java.util.List;//访问文件
public class AccessFile {public static final String FILENAME="D:\\employee.dat";/*** 将集合employees写入文件* @param employees:List集合对象*/public void writeFile(List employees){//初始情况if(employees==null){employees=new ArrayList();}try {FileOutputStream fout=new FileOutputStream(FILENAME);//节点流ObjectOutputStream objout=new ObjectOutputStream(fout);//处理流objout.writeObject(employees);//将集合对象写入文件objout.flush();objout.close();}catch(Exception ex){ex.printStackTrace();}}/*** 读文件* @return:返回读出的集合对象*/public List readFile(){List employees=null;try{File file=new File(FILENAME);if(file.exists()==false)//文件不存在{this.writeFile(null);//利用写文件的方法来创建文件}if(file.length()==0)//文件存在,但是文件是空的{return employees;}FileInputStream fin=new FileInputStream(file);//节点流ObjectInputStream objin=new ObjectInputStream(fin);//处理流employees=(List)objin.readObject();objin.close();          }catch(Exception ex){ex.printStackTrace();}return employees;}}

AddFrame类:

package ui;import java.awt.BorderLayout;
import java.awt.EventQueue;import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTabbedPane;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.JPasswordField;
import javax.swing.JEditorPane;
import java.awt.event.ActionListener;
import java.util.List;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.border.EtchedBorder;import business.EmployeeManager;
import data.AccessFile;
import vo.Employee;import java.awt.Font;
import javax.swing.JTextPane;
import javax.swing.AbstractButton;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JScrollBar;
import javax.swing.JProgressBar;
import javax.swing.ImageIcon;public class AddFrame extends JFrame {private JPanel contentPane;private JTextField textField;private JTextField textField_1;private JTextField textField_2;private JTextField textField_3;private JTextField textField_4;private final JButton btnNewButton = new JButton("\u4FDD\u5B58");private JTextField textField_5;JComboBox comboBox_2,comboBox_3,comboBox_1,comboBox,comboBox_4;EmployeeManager em;AccessFile af;String id;public AddFrame(String id){this();//调用不带参的构造方法//获取传递过来的idthis.id=id;//将id赋给文本框this.textField.setText(id);//根据id号找到雇员Employee e=em.findEmployeeByID(id);//将原来雇员的信息填充到相应的组件上textField_4.setText(e.getName());comboBox_2.setSelectedItem(e.getSex());comboBox_3.setSelectedItem(e.getDept());comboBox_1.setSelectedItem(e.getPost());comboBox.setSelectedItem(e.getDuty());comboBox_4.setSelectedItem(e.getDegree());//将按钮的文本修改“修改”btnNewButton.setText("修改");}/*** Create the frame.*/public AddFrame() {setTitle("\u5458\u5DE5\u4FE1\u606F");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 968, 551);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);contentPane.setLayout(null);JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);tabbedPane.setBounds(10, 10, 936, 450);contentPane.add(tabbedPane);JPanel panel = new JPanel();panel.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));tabbedPane.addTab("基本信息", null, panel, null);panel.setLayout(null);textField = new JTextField();textField.setBounds(69, 10, 115, 29);panel.add(textField);textField.setColumns(10);comboBox = new JComboBox();comboBox.setModel(new DefaultComboBoxModel(new String[] { "\u79D1\u957F" }));comboBox.setBounds(69, 55, 115, 29);panel.add(comboBox);comboBox_1 = new JComboBox();comboBox_1.setModel(new DefaultComboBoxModel(new String[] { "\u8D22\u52A1\u603B\u76D1" }));comboBox_1.setBounds(69, 101, 115, 29);panel.add(comboBox_1);comboBox_2 = new JComboBox();comboBox_2.setModel(new DefaultComboBoxModel(new String[] { "\u7537", "\u5973" }));comboBox_2.setBounds(69, 146, 115, 29);panel.add(comboBox_2);textField_1 = new JTextField();textField_1.setBounds(69, 191, 115, 29);panel.add(textField_1);textField_1.setColumns(10);comboBox_3 = new JComboBox();comboBox_3.setModel(new DefaultComboBoxModel(new String[] { "\u8D22\u52A1\u79D1" }));comboBox_3.setBounds(299, 9, 157, 29);panel.add(comboBox_3);comboBox_4 = new JComboBox();comboBox_4.setModel(new DefaultComboBoxModel(new String[] { "\u672C\u79D1" }));comboBox_4.setBounds(299, 55, 157, 29);panel.add(comboBox_4);JComboBox comboBox_5 = new JComboBox();comboBox_5.setModel(new DefaultComboBoxModel(new String[] { "\u884C\u653F\u7BA1\u7406\u4EBA\u5458" }));comboBox_5.setBounds(299, 101, 157, 29);panel.add(comboBox_5);textField_2 = new JTextField();textField_2.setBounds(299, 147, 157, 28);panel.add(textField_2);textField_2.setColumns(10);textField_3 = new JTextField();textField_3.setBounds(299, 191, 403, 29);panel.add(textField_3);textField_3.setColumns(10);textField_4 = new JTextField();textField_4.setBounds(581, 10, 121, 29);panel.add(textField_4);textField_4.setColumns(10);JComboBox comboBox_6 = new JComboBox();comboBox_6.setModel(new DefaultComboBoxModel(new String[] { "\u6B63\u5F0F\u5408\u540C\u5DE5" }));comboBox_6.setBounds(581, 55, 121, 29);panel.add(comboBox_6);JComboBox comboBox_7 = new JComboBox();comboBox_7.setModel(new DefaultComboBoxModel(new String[] { "\u4E00\u7EA7\u4E00\u7B49" }));comboBox_7.setBounds(581, 101, 121, 29);panel.add(comboBox_7);JLabel lblNewLabel = new JLabel("\u5DE5\u53F7");lblNewLabel.setFont(new Font("宋体", Font.BOLD, 14));lblNewLabel.setBounds(10, 13, 49, 26);panel.add(lblNewLabel);JLabel lblNewLabel_1 = new JLabel("\u804C\u4F4D");lblNewLabel_1.setFont(new Font("宋体", Font.BOLD, 14));lblNewLabel_1.setBounds(10, 59, 49, 25);panel.add(lblNewLabel_1);JLabel lblNewLabel_2 = new JLabel("\u5C97\u4F4D");lblNewLabel_2.setFont(new Font("宋体", Font.BOLD, 14));lblNewLabel_2.setBounds(10, 105, 49, 25);panel.add(lblNewLabel_2);JLabel lblNewLabel_3 = new JLabel("\u6027\u522B");lblNewLabel_3.setFont(new Font("宋体", Font.BOLD, 14));lblNewLabel_3.setBounds(10, 150, 49, 25);panel.add(lblNewLabel_3);JLabel lblNewLabel_4 = new JLabel("\u624B\u673A");lblNewLabel_4.setFont(new Font("宋体", Font.BOLD, 14));lblNewLabel_4.setBounds(10, 194, 49, 26);panel.add(lblNewLabel_4);JLabel lblNewLabel_5 = new JLabel("\u5907\u6CE8");lblNewLabel_5.setFont(new Font("宋体", Font.BOLD, 14));lblNewLabel_5.setBounds(10, 233, 47, 28);panel.add(lblNewLabel_5);JLabel lblNewLabel_6 = new JLabel("\u90E8\u95E8");lblNewLabel_6.setFont(new Font("宋体", Font.BOLD, 14));lblNewLabel_6.setBounds(220, 13, 54, 21);panel.add(lblNewLabel_6);JLabel lblNewLabel_7 = new JLabel("\u5B66\u5386");lblNewLabel_7.setFont(new Font("宋体", Font.BOLD, 14));lblNewLabel_7.setBounds(220, 59, 54, 25);panel.add(lblNewLabel_7);JLabel lblNewLabel_8 = new JLabel("\u5C97\u4F4D\u7C7B\u522B");lblNewLabel_8.setFont(new Font("宋体", Font.BOLD, 14));lblNewLabel_8.setBounds(208, 105, 66, 25);panel.add(lblNewLabel_8);JLabel lblNewLabel_9 = new JLabel("\u8EAB\u4EFD\u8BC1\u53F7");lblNewLabel_9.setFont(new Font("宋体", Font.BOLD, 14));lblNewLabel_9.setBounds(208, 150, 66, 25);panel.add(lblNewLabel_9);JLabel lblNewLabel_10 = new JLabel("\u5BB6\u5EAD\u4F4F\u5740");lblNewLabel_10.setFont(new Font("宋体", Font.BOLD, 14));lblNewLabel_10.setBounds(208, 194, 66, 26);panel.add(lblNewLabel_10);JLabel lblNewLabel_11 = new JLabel("\u59D3\u540D");lblNewLabel_11.setFont(new Font("宋体", Font.BOLD, 14));lblNewLabel_11.setBounds(492, 13, 54, 21);panel.add(lblNewLabel_11);JLabel lblNewLabel_12 = new JLabel("\u8058\u7528\u7C7B\u578B");lblNewLabel_12.setFont(new Font("宋体", Font.BOLD, 14));lblNewLabel_12.setBounds(480, 59, 66, 25);panel.add(lblNewLabel_12);JLabel lblNewLabel_13 = new JLabel("\u5C97\u4F4D\u7B49\u7EA7");lblNewLabel_13.setFont(new Font("宋体", Font.BOLD, 14));lblNewLabel_13.setBounds(480, 105, 66, 25);panel.add(lblNewLabel_13);JLabel lblNewLabel_14 = new JLabel("\u8FDB\u5382\u65E5\u671F");lblNewLabel_14.setFont(new Font("宋体", Font.BOLD, 14));lblNewLabel_14.setBounds(480, 150, 66, 25);panel.add(lblNewLabel_14);JTextPane textPane = new JTextPane();textPane.setBounds(50, 233, 847, 178);panel.add(textPane);JLabel lblNewLabel_15 = new JLabel("New label");// lblNewLabel_15.setIcon(new// ImageIcon(AddFrame.class.getResource("/\u7A97\u53E31/\u5C4F\u5E55\u622A\u56FE// 2022-05-08 213207.png")));lblNewLabel_15.setBounds(735, 17, 162, 203);panel.add(lblNewLabel_15);textField_5 = new JTextField();textField_5.setBounds(581, 150, 121, 25);panel.add(textField_5);textField_5.setColumns(10);JPanel panel_1 = new JPanel();tabbedPane.addTab("合同信息", null, panel_1, null);panel_1.setLayout(null);JPanel panel_2 = new JPanel();tabbedPane.addTab("工作经历", null, panel_2, null);panel_2.setLayout(null);btnNewButton.setFont(new Font("宋体", Font.BOLD, 18));//保存和修改btnNewButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if(btnNewButton.getText().equals("保存")){saveEmployee();}else if(btnNewButton.getText().equals("修改")){updateEmployee();}}});btnNewButton.setBounds(404, 470, 73, 28);contentPane.add(btnNewButton);JButton btnNewButton_1 = new JButton("\u5173\u95ED");btnNewButton_1.setFont(new Font("宋体", Font.BOLD, 18));btnNewButton_1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {Employee employee = new Employee();employee.setName(textField_4.getText());}});btnNewButton_1.setBounds(479, 470, 73, 28);contentPane.add(btnNewButton_1);em = new EmployeeManager();af = new AccessFile();this.textField.setText(this.getEmployeeID());this.textField.setEditable(false);}//修改员工protected void updateEmployee() {Employee employee = new Employee();employee.setName(textField_4.getText());employee.setSex(comboBox_2.getSelectedItem().toString());employee.setDept(comboBox_3.getSelectedItem().toString());employee.setId(textField.getText());employee.setPost(comboBox_1.getSelectedItem().toString());employee.setDuty(comboBox.getSelectedItem().toString());employee.setDegree(comboBox_4.getSelectedItem().toString());//调用业务方法if(em.updateEmployee(textField.getText().trim(), employee)) {JOptionPane.showMessageDialog(AddFrame.this, "员工信息修改成功");MainFrame mainFrame=new MainFrame();mainFrame.setVisible(true);AddFrame.this.dispose();}else {JOptionPane.showMessageDialog(AddFrame.this, "员工信息修改失败");}}//新增一个员工protected void saveEmployee() {Employee employee = new Employee();employee.setName(textField_4.getText());employee.setSex(comboBox_2.getSelectedItem().toString());employee.setDept(comboBox_3.getSelectedItem().toString());employee.setId(textField.getText());employee.setPost(comboBox_1.getSelectedItem().toString());employee.setDuty(comboBox.getSelectedItem().toString());employee.setDegree(comboBox_4.getSelectedItem().toString());if(em.addEmployee(employee)) {JOptionPane.showMessageDialog(AddFrame.this, "员工添加成功");MainFrame mainFrame=new MainFrame();mainFrame.setVisible(true);AddFrame.this.dispose();}else {JOptionPane.showMessageDialog(AddFrame.this, "员工添加失败");}}// 生成新员工的id号private String getEmployeeID() {String id = "";List employees = af.readFile();if (employees == null || employees.size() == 0) {id = "202201001";} else {// 取出集合中的最后一个元素Employee e = (Employee) employees.get(employees.size() - 1);String lastid = e.getId();int code = Integer.parseInt(lastid.substring(6, 9));code += 1;if (code < 10) {id = lastid.substring(0, 8) + code;} else if (code < 100) {id = lastid.substring(0, 7) + code;} else {id = lastid.substring(0, 6) + code;}}return id;}
}

MainFrame类:

package ui;import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.Border;
import javax.swing.border.EmptyBorder;
import java.awt.GridBagLayout;
import javax.swing.BoxLayout;
import javax.swing.JTextPane;
import javax.swing.JTree;
import javax.swing.JTable;
import javax.swing.border.TitledBorder;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.List;
import java.awt.event.ActionEvent;
import java.awt.Color;
import java.awt.Component;
import javax.swing.border.EtchedBorder;
import javax.swing.table.DefaultTableModel;
import java.awt.CardLayout;
import java.awt.FlowLayout;
import java.awt.Frame;import javax.swing.JEditorPane;
import javax.swing.JCheckBox;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.tree.DefaultTreeModel;import business.EmployeeManager;
import vo.Employee;import javax.swing.tree.DefaultMutableTreeNode;public class MainFrame extends JFrame {private JPanel contentPane;private JTable table;private JTextField textField;private JTextField textField_1;EmployeeManager em;DefaultTableModel dtm;/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {MainFrame frame = new MainFrame();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the frame.*/public MainFrame() {setTitle("\u5458\u5DE5\u4FE1\u606F\u6536\u96C6\u8868");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 896, 501);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);contentPane.setLayout(null);JPanel panel = new JPanel();panel.setBorder(new TitledBorder(null, "\u67E5\u8BE2\u6761\u4EF6", TitledBorder.LEADING, TitledBorder.TOP, null, null));panel.setForeground(new Color(0, 0, 0));panel.setBounds(158, 10, 573, 153);contentPane.add(panel);textField = new JTextField();textField.setColumns(10);textField_1 = new JTextField();textField_1.setColumns(10);JComboBox comboBox = new JComboBox();comboBox.addItem("选择");comboBox.addItem("男");comboBox.addItem("女");JComboBox comboBox_1 = new JComboBox();comboBox_1.addItem("选择");comboBox_1.addItem("总经理");comboBox_1.addItem("副总经理");comboBox_1.addItem("科长");JComboBox comboBox_2 = new JComboBox();comboBox_2.addItem("选择");comboBox_2.addItem("博士");comboBox_2.addItem("硕士");comboBox_2.addItem("本科");comboBox_2.addItem("大专");JComboBox comboBox_3 = new JComboBox();comboBox_3.addItem("选择");comboBox_3.addItem("总经理");comboBox_3.addItem("财务总监");comboBox_3.addItem("主任");comboBox_3.addItem("技术总监");JLabel lblNewLabel = new JLabel("\u5DE5\u53F7");JLabel lblNewLabel_1 = new JLabel("\u804C\u4F4D");JLabel lblNewLabel_2 = new JLabel("\u59D3\u540D");JLabel lblNewLabel_3 = new JLabel("\u5B66\u5386");JLabel lblNewLabel_4 = new JLabel("\u6027\u522B");JLabel lblNewLabel_5 = new JLabel("\u5C97\u4F4D");GroupLayout gl_panel = new GroupLayout(panel);gl_panel.setHorizontalGroup(gl_panel.createParallelGroup(Alignment.LEADING).addGroup(gl_panel.createSequentialGroup().addContainerGap().addGroup(gl_panel.createParallelGroup(Alignment.LEADING).addComponent(lblNewLabel).addComponent(lblNewLabel_1)).addPreferredGap(ComponentPlacement.RELATED).addGroup(gl_panel.createParallelGroup(Alignment.TRAILING, false).addComponent(textField).addComponent(comboBox_1, 0, 111, Short.MAX_VALUE)).addGap(54).addGroup(gl_panel.createParallelGroup(Alignment.TRAILING).addComponent(lblNewLabel_2).addComponent(lblNewLabel_3)).addPreferredGap(ComponentPlacement.UNRELATED).addGroup(gl_panel.createParallelGroup(Alignment.LEADING, false).addComponent(textField_1).addComponent(comboBox_2, 0, 112, Short.MAX_VALUE)).addPreferredGap(ComponentPlacement.RELATED, 49, Short.MAX_VALUE).addGroup(gl_panel.createParallelGroup(Alignment.TRAILING).addComponent(lblNewLabel_4).addComponent(lblNewLabel_5)).addPreferredGap(ComponentPlacement.UNRELATED).addGroup(gl_panel.createParallelGroup(Alignment.TRAILING, false).addComponent(comboBox_3, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(comboBox, 0, 119, Short.MAX_VALUE)).addContainerGap()));gl_panel.setVerticalGroup(gl_panel.createParallelGroup(Alignment.LEADING).addGroup(gl_panel.createSequentialGroup().addGap(25).addGroup(gl_panel.createParallelGroup(Alignment.BASELINE).addComponent(textField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE).addComponent(comboBox, GroupLayout.PREFERRED_SIZE, 23, GroupLayout.PREFERRED_SIZE).addComponent(lblNewLabel).addComponent(lblNewLabel_4).addComponent(textField_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE).addComponent(lblNewLabel_2)).addGap(26).addGroup(gl_panel.createParallelGroup(Alignment.BASELINE).addComponent(comboBox_3, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE).addComponent(comboBox_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE).addComponent(lblNewLabel_1).addComponent(lblNewLabel_5).addComponent(comboBox_2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,GroupLayout.PREFERRED_SIZE).addComponent(lblNewLabel_3)).addContainerGap(33, Short.MAX_VALUE)));panel.setLayout(gl_panel);JPanel panel_1 = new JPanel();panel_1.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED, new Color(255, 255, 255), new Color(160, 160, 160)),"\u5458\u5DE5\u4FE1\u606F\u5217\u8868", TitledBorder.LEADING, TitledBorder.TOP, null,new Color(0, 0, 0)));panel_1.setBounds(158, 194, 716, 262);contentPane.add(panel_1);panel_1.setLayout(new BorderLayout());// 表格Object[] cObjects = { "\u5DE5\u53F7", "\u90E8\u95E8", "\u59D3\u540D", "\u6027\u522B", "\u804C\u4F4D","\u5C97\u4F4D", "\u5B66\u5386" };Object[][] bObjects = { { "200201001", "管理科", "张军", "男", "总经理", "总经理", "硕士" },{ "200201002", "财务科", "郭笑", "女", "科长", "财务总监", "本科" },{ "200201003", "管理科", "唐撮", "男", "副总经理", "总经理", "博士" },{ "200201005", "技术科", "杨思远", "男", "科长", "主任", "大专" },{ "200201004", "技术科", "卓一凡", "女", "科长", "技术总监", "本科" } };// 用模型去填充dtm = new DefaultTableModel(bObjects, cObjects) {@Override//单元格是否可编辑public boolean isCellEditable(int row, int column) {return false;  }}; table = new JTable(dtm);//     dtm.addTableModelListener(new TableModelListener() {
//
//          @Override
//          public void tableChanged(TableModelEvent e) {
//              if(e.getType()==TableModelEvent.UPDATE)
//              {
//                  System.err.println("update");
//              }
//
//          }
//      });table.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {if(e.getClickCount()==2)//双击{String id=table.getValueAt(table.getSelectedRow(), 0).toString();AddFrame addFrame=new AddFrame(id);addFrame.setVisible(true);MainFrame.this.dispose();}}});panel_1.add(table.getTableHeader(), BorderLayout.NORTH);panel_1.add(table, BorderLayout.CENTER);JButton btnNewButton = new JButton("\u67E5\u8BE2");// 查询btnNewButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if (!textField.getText().equals("")) {findbyid();// 调取} else if (!textField_1.getText().equals("")) {findbyname();} else if (!comboBox.getSelectedItem().equals("选择")) {findbysex(comboBox.getSelectedItem().toString());comboBox.setSelectedItem(0);// 将下拉列表复原}}});btnNewButton.setBounds(741, 10, 108, 41);contentPane.add(btnNewButton);JButton btnNewButton_1 = new JButton("\u65B0\u589E");// 新增btnNewButton_1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {AddFrame addFrame = new AddFrame();addFrame.setVisible(true);MainFrame.this.dispose();// 销毁当前界面}});btnNewButton_1.setBounds(741, 69, 108, 41);contentPane.add(btnNewButton_1);JButton btnNewButton_2 = new JButton("\u5220\u9664");// 删除btnNewButton_2.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {//table.getSelectedRow() == -1表示用户没有在JTable控件上选择行if (table.getSelectedRow() == -1) {JOptionPane.showMessageDialog(MainFrame.this, "请选择要删除的记录");}else {//table.getValueAt(table.getSelectedRow(), 0).toString()获得指定行列单元格的值String id = table.getValueAt(table.getSelectedRow(), 0).toString();//if (JOptionPane.showConfirmDialog(MainFrame.this, "确实要删除吗?", "删除",JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION) {//调用业务方法if (em.deleteEmployee(id)) {//fillDataToTable(em.getEmployees());dtm.removeRow(table.getSelectedRow());} else {JOptionPane.showMessageDialog(MainFrame.this, "删除雇员失败");}}}}});btnNewButton_2.setBounds(741, 131, 108, 41);contentPane.add(btnNewButton_2);JTree tree = new JTree();tree.setModel(new DefaultTreeModel(new DefaultMutableTreeNode("\u8BDA\u4FE1") {{DefaultMutableTreeNode node_1;node_1 = new DefaultMutableTreeNode("\u884C\u653F\u90E8\u95E8");node_1.add(new DefaultMutableTreeNode("blue"));node_1.add(new DefaultMutableTreeNode("violet"));node_1.add(new DefaultMutableTreeNode("red"));node_1.add(new DefaultMutableTreeNode("yellow"));add(node_1);node_1 = new DefaultMutableTreeNode("\u8D22\u52A1\u90E8");node_1.add(new DefaultMutableTreeNode("basketball"));node_1.add(new DefaultMutableTreeNode("soccer"));node_1.add(new DefaultMutableTreeNode("football"));node_1.add(new DefaultMutableTreeNode("hockey"));add(node_1);node_1 = new DefaultMutableTreeNode("\u6280\u672F\u79D1");node_1.add(new DefaultMutableTreeNode("hot dogs"));node_1.add(new DefaultMutableTreeNode("pizza"));node_1.add(new DefaultMutableTreeNode("ravioli"));node_1.add(new DefaultMutableTreeNode("bananas"));add(node_1);node_1 = new DefaultMutableTreeNode("供销部");node_1.add(new DefaultMutableTreeNode("hot dogs"));node_1.add(new DefaultMutableTreeNode("pizza"));node_1.add(new DefaultMutableTreeNode("ravioli"));node_1.add(new DefaultMutableTreeNode("bananas"));add(node_1);}}));tree.setBounds(0, 10, 148, 446);contentPane.add(tree);em = new EmployeeManager();if (em.getEmployees() == null || em.getEmployees().size() == 0) {JOptionPane.showMessageDialog(this, "当前还没有员工");}// 读取文件,讲集合中的信息填入表格fillDataToTable(em.getEmployees());}// 用性别去查protected void findbysex(String sex) {List<Employee> emps = em.findEmployeeBysex(sex);if (emps == null || emps.size() == 0) {JOptionPane.showMessageDialog(MainFrame.this, "没有" + sex + "的员工");} else {fillDataToTable(emps);}}// 用name去查protected void findbyname() {String name = textField_1.getText().trim();List<Employee> emps = em.findEmployeeByName(name);if (emps == null || emps.size() == 0) {JOptionPane.showMessageDialog(MainFrame.this, "没有" + name + "的员工");} else {fillDataToTable(emps);}textField_1.setText("");}// 用ID去查protected void findbyid() {String id = textField.getText().trim();Employee employee = em.findEmployeeByID(id);if (employee == null) {JOptionPane.showMessageDialog(MainFrame.this, "没有" + id + "的员工");textField.setText("");} else {List list = new ArrayList<Employee>();list.add(employee);fillDataToTable(list);textField.setText("");}}private void fillDataToTable(List employees) {// 用表格的默认模型类去填充表格// 获得界面上表格对象的默认模型对象DefaultTableModel tableModel = (DefaultTableModel) this.table.getModel();// 将模型中原有的数据清空tableModel.setRowCount(0);// 结合集合的遍历进行数据填充for (Object e : employees) {Employee employee = (Employee) e;String str[] = new String[7];str[0] = employee.getId();str[1] = employee.getDept();str[2] = employee.getName();str[3] = employee.getSex();str[4] = employee.getDuty();str[5] = employee.getPost();str[6] = employee.getDegree();// 数据填充tableModel.addRow(str);}// 刷新表格this.table.invalidate();}
}

Employee类:

package vo;import java.io.Serializable;public class Employee implements Serializable {//工号id,部门dept,姓名name,性别sex,职务duty,岗位post,学历degreeString id;String dept;String name;String sex;String duty;String post;String degree;public Employee(String id, String dept, String name, String sex, String duty, String post, String degree) {super();this.id = id;this.dept = dept;this.name = name;this.sex = sex;this.duty = duty;this.post = post;this.degree = degree;}public Employee() {super();}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getDept() {return dept;}public void setDept(String dept) {this.dept = dept;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getDuty() {return duty;}public void setDuty(String duty) {this.duty = duty;}public String getPost() {return post;}public void setPost(String post) {this.post = post;}public String getDegree() {return degree;}public void setDegree(String degree) {this.degree = degree;}
}

代码均为自己编写,可自行使用,本人小白,望各位大佬指点。

Java实现增删改查系统代码(全~纯干货)相关推荐

  1. dept在Java里面_EmpDeptManager 在JavaEE环境下搭建三大框架体系实现员工的增删改查系统 Develop 261万源代码下载- www.pudn.com...

    文件名称: EmpDeptManager下载  收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 39 KB 上传时间: 2016-07-08 下载次数: 0 提 供 者 ...

  2. sql增删改查_Sirvia 一套web端增删改查系统

    众所周知,后端开发的一个重要组成部分就是数据库,数据的作用简单来说就是将网站的用户数据存起来,至于数据库的什么特性,一些奇技淫巧这里就不便赘述了,因为今天的主角是Sirvia--一套web端增删改查系 ...

  3. javaweb简单的登录增删改查系统_国产化之路统信UOS /Nginx /Asp.Net Core+ EF Core 3.1/达梦DM8实现简单增删改查操作...

    引言 经过前期的准备工作,.net core 3.1的运行环境和WEB服务器已经搭建完毕,这里需要注意一下,达梦DM8数据库对于Entity Framework Core 3.1 的驱动在NuGet官 ...

  4. 极客技术专题【003期】:java mvc 增删改查 自动生成工具来袭

    日期:2013-4-17  来源:GBin1.com 技术专题介绍 分享专题:java mvc 增删改查 自动生成工具来袭 分享人:激情燃烧的UI 授课时间:2013/04/19  21:00-22: ...

  5. HBase java 的增删改查

    HBase java 的增删改查 . 目前来看好像是我的最全了,应该是大佬不屑于写这种的吧 . 其实本来想写很多方法的,但是写着写着就有点烦了,再加上本人也不全是闲人一个,然后就给停了,看着有点乱,但 ...

  6. easyui增删改查前段代码

    easyui增删改查前段代码 <script>var url;//添加用户窗体 function newUser(){$('#dlg').dialog('open').dialog('se ...

  7. java pdf增删改查_如何利用Java代码操作索引库?

    今天是刘小爱自学Java的第161天. 感谢你的观看,谢谢你. 学习计划安排如下: 学了几天的Elasticserch,但都是它本身的知识点,如何通过Java语言去操作它呢? 这就好比以前学数据库,在 ...

  8. java实现增删改查_java大作业,实现学生信息增删改查

    [实例简介] 编写Web应用程序(JavaEE平台上的应用,能够运行在Tomcat服务器上),实现学生信息的增删改查. 在Web页面上实现添加一个学生记录,删除某个学生记录,修改某个学生记录,和按照姓 ...

  9. java mongodb 增删改查_java操作mongodb:基本的增删改查

    java操作mongodb的代码,包含基本的增删改查操作 获取数据库连接工具类 package com.liuc.db;import java.net.UnknownHostException;imp ...

最新文章

  1. 细说 #pragma pack(n)
  2. 给ztree节点赋值
  3. 爸爸我爱您(之十二)
  4. 「任性」的C语言之父:因拒付论文装订费错失博士学位,论文52年后重见天日...
  5. oracle 11g12c(pdbcdb)系统巡检
  6. 安装Debian7后遇到的问题与解决办法
  7. logback日志pattern_logback-自定义Pattern模板
  8. Facebook再遭黑客攻击 部分账户密码被盗
  9. 安徽二本大学计算机排名,2018安徽大学排名 安徽有哪些大学
  10. 华为交换机密码重置(在S5720系列上验证)
  11. 使用java进行远程控制,java实现远程控制
  12. Android数据编码之Base64
  13. 电子不停车收费系统(ETC)专题(1)——系统概述
  14. 尚硅谷Kubernetes(k8s)视频学习笔记
  15. 虚拟机中如何给Ubuntu系统进行联网
  16. Use // eslint-disable-next-line to ignore the next line. Use /* eslint-disable */ to ignore all warn
  17. 数据库的原理,一篇文章搞定(三)
  18. php openssl函数手册,OpenSSL 函数 - PHP 7 中文文档
  19. ThinkPhp上传文件提示“没有上传的文件”解决方案
  20. QGC地面站手把手教你改——如何添加跟随面板显示关键参数

热门文章

  1. 2021-11-03 - 英文/英语简写 - 收集
  2. 获取必应每日壁纸(api)
  3. showdown让你的网站支持Markdown和代码块highlight
  4. golang使用go Modules相关命令时报错
  5. Appium基础 — uiautomatorviewer定位工具
  6. 微信开发 JS接口安全域名修改
  7. DTL语言学习(四){% spaceless %}、{% autospace %}和{% verbatim %}标签
  8. AVL树简单实现及原理
  9. HDU - 4960 Another OCD Patient 记忆化
  10. Android Studio | 5种Log | android.util.Log