package com.zf.hrms.veiw.person;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JTree;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import com.zf.hrms.dao.dept.DeptDao;
import com.zf.hrms.dao.person.PersonDao;
import com.zf.hrms.dao.position.PositionDao;
import com.zf.hrms.entity.dept.Department;
import com.zf.hrms.entity.person.Person;
import com.zf.hrms.entity.position.Position;
@SuppressWarnings("serial")
public class SearchPersonPanel extends JPanel {
private JTabbedPane tbpnl = new JTabbedPane();
private JTree treDept = new JTree();
private JTree trePosition = new JTree();
private JButton btnUpdate = new JButton("修 改");
private JButton btnDelete = new JButton("删 除");
private JTable table = new JTable();
private static final String[] tableHead = { "编号", "姓名", "年龄", "部门", "职位" };
public SearchPersonPanel(int width, int height) {
/* 设置主面板 */
this.setLayout(null);
this.setSize(width, height);
/* 设置标签面板 */
tbpnl.setBounds(5, 10, 195, height - 15);
this.add(tbpnl);
// 部门标签
JScrollPane spDept = new JScrollPane(treDept);
spDept.setBounds(0, 0, 200, 400);
tbpnl.add("部门", spDept);
loadDepts();
treDept.addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
DefaultMutableTreeNode sn = (DefaultMutableTreeNode) treDept
.getLastSelectedPathComponent();
if ((null != sn) && !sn.isRoot()) {
Department dept = (Department) sn.getUserObject();
searchByDept(dept);
}
}
});
// 职位标签
JScrollPane spPosition = new JScrollPane(trePosition);
spPosition.setBounds(0, 0, 200, 400);
tbpnl.add("职位", spPosition);
loadPositions();
trePosition.addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
DefaultMutableTreeNode sn = (DefaultMutableTreeNode) trePosition.getLastSelectedPathComponent();
if ((null != sn) && !sn.isRoot()) {
Position position = (Position) sn.getUserObject();
searchByPosition(position);
}
}
});
/* 设置修改按钮 */
btnUpdate.setBounds(595, 20, 80, 30);
this.add(btnUpdate);
btnUpdate.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
showUpdate();
}
});
/* 设置删除按钮 */
btnDelete.setBounds(685, 20, 80, 30);
this.add(btnDelete);
btnDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
delete();
}
});
/* 设置表格 */
table.setModel(new DefaultTableModel(new Object[0][], tableHead));
JScrollPane sp = new JScrollPane(table);
sp.setBounds(205, 70, width - 215, height - 75);
add(sp);
}
private void showUpdate() {
if (table.getSelectedRowCount() != 1) {
JOptionPane.showMessageDialog(null, "请选择一个人员!");
return;
}
/* ************ */
Person person = new Person();
person.setNo((String) table.getValueAt(table.getSelectedRow(), 0));
person.setName((String) table.getValueAt(table.getSelectedRow(), 1));
person.setAge((Integer) table.getValueAt(table.getSelectedRow(), 2));
person.setDept((Department) table.getValueAt(table.getSelectedRow(), 3));
person.setPosition((Position) table.getValueAt(table.getSelectedRow(), 4));
/* ************ */
UpdatePersonFrame f = new UpdatePersonFrame(person);
f.setVisible(true);
}
private void searchByDept(Department dept) {
/* 按部门查询人员 */
List<Person> list = new ArrayList<Person>();
try {
list = PersonDao.searchByDept(dept);
loadTable(list);
} catch (Exception e) {
e.printStackTrace();
javax.swing.JOptionPane.showMessageDialog(null, "查询人员失败!");
}
}
private void searchByPosition(Position position) {
/* 按职位查询人员 */
try {
List<Person> list = PersonDao.searchByPosition(position);
loadTable(list);
} catch (Exception e) {
e.printStackTrace();
javax.swing.JOptionPane.showMessageDialog(null, "查询人员失败!");
}
}
private void loadTable(List<Person> list) {
/* 将查询出的人员组装成表格需要的格式 */
Object[][] data = new Object[list.size()][];
for (int i = 0; i < list.size(); i++) {
Person p = list.get(i);
Object[] row = new Object[5];
row[0] = p.getNo();
row[1] = p.getName();
row[2] = p.getAge();
row[3] = p.getDept();
row[4] = p.getPosition();
data[i] = row;
}
/* 向表格中添加数据 */
table.setModel(new DefaultTableModel(data, tableHead));
}
private void loadDepts() {
List<Department> list = new ArrayList<Department>();
try {
list = DeptDao.search(null);
} catch (Exception e) {
e.printStackTrace();
}
/* ********************* */
DefaultMutableTreeNode n = new DefaultMutableTreeNode("所有部门", true);
for (Department d : list) {
n.add(new DefaultMutableTreeNode(d));
}
treDept.setModel(new DefaultTreeModel(n));
}
private void loadPositions() {
List<Position> list = new ArrayList<Position>();
try {
list = PositionDao.search(null);
} catch (Exception e) {
e.printStackTrace();
}
/* ********************* */
DefaultMutableTreeNode n = new DefaultMutableTreeNode("所有职位", true);
for (Position p : list) {
n.add(new DefaultMutableTreeNode(p));
}
trePosition.setModel(new DefaultTreeModel(n));
}
private void delete() {
if (table.getSelectedRowCount() != 1) {
JOptionPane.showMessageDialog(null, "请选择一个人员!");
return;
}
Person person = new Person();
person.setNo((String) table.getValueAt(table.getSelectedRow(), 0));
try {
PersonDao.delete(person);
javax.swing.JOptionPane.showMessageDialog(null, "删除人员成功!");
} catch (Exception e) {
e.printStackTrace();
javax.swing.JOptionPane.showMessageDialog(null, "删除人员失败!");
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
纯JavaSwing界面,小型人才资源管理系统
共80个文件
class:51个
java:25个
jpg:1个
需积分: 10 13 下载量 68 浏览量
2018-03-15
19:56:56
上传
评论 2
收藏 858KB ZIP 举报
温馨提示
纯JavaSwing界面,后台是Mysql数据库。用JavaSwing界面操作连接数据库,新增,修改,删除数据。多条件搜索数据,纯javaSwing界面统计图。
资源推荐
资源详情
资源评论
收起资源包目录
JavaSQL.zip (80个子文件)
JavaSQL
bin
com
zf
hrms
dao
ConnectionManager.class 5KB
dept
DeptDao.class 3KB
UsersVo.class 744B
stats
StatsDao.class 1KB
loginUI.class 4KB
Gaimi.class 4KB
person
PersonDao.class 4KB
regUIS.class 4KB
position
PositionDao.class 3KB
common
Common.class 1KB
entity
dept
Department.class 801B
person
Person.class 2KB
position
Position.class 803B
veiw
MainFrame.class 4KB
MainFrame$7.class 851B
MainFrame$5.class 859B
dept
SearchDeptPanel$1.class 779B
UpdateDeptFrame$1.class 813B
UpdateDeptFrame.class 3KB
AddDeptFrame$1.class 748B
SearchDeptPanel.class 5KB
SearchDeptPanel$3.class 779B
SearchDeptPanel$2.class 779B
AddDeptFrame.class 2KB
stats
StatsDeptPanel.class 2KB
StatsPositionPanel.class 3KB
MainFrame$4.class 1KB
MainFrame$3.class 843B
MainFrame$6.class 1KB
MainFrame$10.class 1KB
person
AddPersonFrame.class 5KB
UpdatePersonFrame$1.class 833B
SearchPersonPanel$3.class 801B
SearchPersonPanel.class 8KB
SearchPersonPanel$4.class 801B
UpdatePersonFrame.class 5KB
SearchPersonPanel$1.class 1KB
AddPersonFrame$1.class 770B
SearchPersonPanel$2.class 1KB
MainFrame$9.class 1KB
MainFrame$2.class 748B
MainFrame$1.class 736B
MainFrame$8.class 1KB
position
UpdatePositionFrame$1.class 859B
SearchPositionPanel$3.class 823B
SearchPositionPanel.class 5KB
SearchPositionPanel$2.class 823B
AddPositionFrame.class 3KB
AddPositionFrame$1.class 792B
SearchPositionPanel$1.class 823B
UpdatePositionFrame.class 3KB
pic
Koala.jpg 763KB
.settings
org.eclipse.jdt.core.prefs 598B
src
com
zf
hrms
dao
dept
DeptDao.java 2KB
UsersVo.java 389B
stats
StatsDao.java 706B
person
PersonDao.java 3KB
loginUI.java 4KB
regUIS.java 4KB
position
PositionDao.java 2KB
Gaimi.java 4KB
ConnectionManager.java 4KB
common
Common.java 1KB
entity
dept
Department.java 411B
person
Person.java 919B
position
Position.java 401B
veiw
dept
SearchDeptPanel.java 4KB
AddDeptFrame.java 2KB
UpdateDeptFrame.java 2KB
stats
StatsDeptPanel.java 1KB
StatsPositionPanel.java 2KB
person
SearchPersonPanel.java 6KB
UpdatePersonFrame.java 5KB
AddPersonFrame.java 4KB
MainFrame.java 6KB
position
UpdatePositionFrame.java 2KB
AddPositionFrame.java 2KB
SearchPositionPanel.java 4KB
.project 383B
.classpath 718B
共 80 条
- 1
资源评论
学到老--程序员
- 粉丝: 0
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功