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

代码结构:

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();//调用不带参的构造方法
		//获取传递过来的id
		this.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() {
			@Override
			public 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,学历degree
	String 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;
	}
}

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

  • 13
    点赞
  • 104
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值