java中addressbe already inn

老师布置了第二个JAVA作业让写人倳管理系统。

代码思路参考自:清华大学出版设出版的《Java课程设计案例精编(第3版)》

作业是老师在十月一日哦放假前让写的所以十一囙家写了俩界面,然后回到学校老师说先

不做这个先写一个订餐系统,后来为了参加十一月的区域赛就搁置了这个作业参加完

区域赛皛天还要练题没怎么写,都是晚上快睡觉的时候写了几个界面断断续续把界面写完

了,这周五、周六一鼓作气把这个给写完了正好周┅上课老师检查。

PS:代码已上传至github账号以后不再以邮箱形式发送给评论者,请到我的github下载

人事管理系统功能简介:

人事管理系统主要鼡来实现各种人事管理功能,这些功能包括人员基本信息管理部门

管理,人员调动管理人员考核管理以及劳资管理这些模块。

可以发現主界面是两个分离面板将左侧的树形结构和右侧的面板隔开。左侧的树形结构清晰地

表示出了该系统地功能设计该界面左侧是一个樹,人事管理系统是树根root,然后有四个一级节点

接下来是若干个二级节点(叶子节点)。该界面主要响应的事件有当点击根节点的时候,显示图中

右侧界面当点击一级节点的时候,如果该节点没有展开则先展开该节点。当点击叶子节点的时候

将相应的面板显示在右侧區域中

1.基本信息管理模块:实现对人员信息的增删查该操作,以及对部门的增删查改操作

该模块主要实现添加员工信息功能,当点击獲取新编号按钮的时候清空所有文本框,并为欲添加的人员

自动分配一个编号点击添加按钮的时候,首先判断数据库中不能为空的字段在文本框中是否为空如果

为有是空的值则拒绝插入,否则插入到Person并弹出提示信息信息插入成功。

该模块用来实现信息修改功能首先通过在Person中查找,将人员的编号和姓名等信息绑定到选择人员信息

下拉列表然后可以选择人员,选中某个人员后从Person中将该人员的基本信息查找出来并在文本框显示。

对于性别、出生年月、民族这三个信息由于在通常情况下不常变动则设置文本框不可修改,其他信息可鉯

进行修改点击修改按钮的时候,同样要进行信息的检测看信息输入是否正确,如果正确则更新表中对应

的记录否则拒绝更新,点擊清空按钮的时候清空所有文本框内的内容。

该模块用来实现删除员工记录的功能首先在右侧面板初始化的时候,我们先从Person中查找需偠的信息

并显示在右侧当点中界面中表的一条记录时,将该员工的信息显示在下部文本框中当点击删除按钮

的时候,删除该记录并刷新界面。

该界面和上个界面相似就是将所有员工的信息显示在界面上。

该界面可以实现部门的增删查改功能初始化面板的时候,将DeptTable總的所有信息绑定到该界面上

当点击获取新编号的时候,清空文本框给欲添加的部门分配一个编号,当点击添加按钮的时候需要

检測信息输入是否合法。当选中表中的一条记录将该部门的信息显示在下部文本框中,然后可以对一级

部门和二级部门进行修改当点击修改按钮的时候,检测信息是否合法合法则修改并提示用户修改成功,

否则拒绝修改如果修改成功,则该界面也需要跟着刷新当点擊删除按钮的时候,由于数据库中表的级

关系 如果Person表中还有对应部门的员工,则不允许删除否则可以删除。当点击清空按钮的时候

清空所有文本框内的内容。

2.人员调动模块:实现对人员工作的调动以及对调动历史的查询

该模块实现人员部门的调动,从Person表中查询图Φ字段相应的信息并显示并从DeptTable表中查询所有

部门并将这些部门绑定到新部门下拉列表框中,选择调入新部门后更新Person表中的信息,并且將该调动

该界面从jobChange表中读出所有信息并在界面上显示

3.人员考核管理模块:实现对员工工作的考核,并显示考核记录

同样从Person表中取出图Φ相应的信息并在面板上显示,当选择一条记录的时候将其信息在下方文本框

显示,点击确定按钮的时候将Person表中的相关信息更新,并將该考核记录插入assessChange表中

该界面将assessChange表的内容进行显示。

4.劳资管理:用来实现员工工资的调整和劳资历史的查询

该模块用来实现员工工资嘚调整,同样从Person中取出相应的信息并生成表格显示在界面上当选中一条记录

时,将该记录的信息在下方文本框中显示点击确定按钮后,更新Person中的信息弹出修改提示,并将该劳资

从salaryChange表中取出所有信息在界面上显示

  * 人事管理系统的主界面 //建立界面左侧JTree菜单 //建立右侧操作區域,整个界面由两个分离面板构成 * 构造函数完成对象的初始化工作 //添加框架的关闭事件处理 //设置窗体左上角图标 * 初始化函数,完成界面嘚初始化工作 //将各个子节点,添加到root上去 //实例化root的四个子节点。 //基本信息管理上添加5个子节点 //基本信息管理节点添加到根节点上 //人员調动管理上添加两个子节点。 //将人员调动管理节点添加到根节点上 //人员考核管理模块子功能 //人员考核管理节点添加到根节点上 //劳资管理模块子功能 //劳资管理节点添加到根节点上。 //生成左侧的JTree并且该树以root为根。 //将树添加到滚动面板上 //设置滚动面板的大小 //开始设计右部界媔。 //间隔方式是水平摆放间隔 //功能树位于界面左侧 //相应功能对应的面板位于分离面板的右侧 //为左侧的tree添加事件监听器。 * 点击不同的节点右侧显示不同的面板 //如果当前选择的节点是root,人事管理系统右侧面板是初始模样 /* 当点击基本信息管理节点的时候,如果此节点处于 * 关閉状态则将其自动展开,用此代码实现节点自动展开 



  * 每个节点对应一个面板,这些面板按照父节点、子节点进行编号 //界面分为两部汾,上部分用来显示该模块的作用 //中部用来让用户执行相应的操作来满足自己的需求。 //定义界面需要的文本框 //两个按钮,用来添加信息和清空信息 //该按钮用来为新增加的员工分配编号 //该按钮用来执行添加员工信息的操作 //该按钮用来完成清空文本框的操作 * 构造函数完成对象嘚初始化工作 //设置面板的布局为网格布局。 //将“人员编号”这个标签添加到面板的指定位置 //添加用来填写人员编号的文本框到面板上 //添加顯示人员姓名的文本框 //添加填写性别文本框 //添加出生年月文本标签 //添加出生年月文本框 //添加填写民族的文本框 //其他标签对应的文本框 //设置媔板的布局方式为网格布局 * 为各个按钮添加事件监听器 //事件源是添加信息按钮 //添加人员信息将所有参数传进去 * 点击清空按钮的时候,清涳所有文本框中的值 
 

  * 实现修改人员信息的界面 //定义界面所需要用的面板 //定义界面所需要的标签(静态文本) //定义界面所需的文本框 //这三个變量并没有什么实际意义 //定义两个按钮,一个是修改按钮一个是清空按钮。 * 构造函数完成初始化工作 //添加显示人员标号所需要的文本框 //添加显示人员姓名的文本框 //添加显示人员性别的文本框 //添加出生年月的标签 //添加出生年月所需的文本框 //选择人员需要用的下拉列表框 //添加修改按钮到面板上 //添加清空按钮到面板上 //所有文本框初始都设置为不可用直到选中一个人,然后再将文本框设置为可用 * 为一些控件添加事件监听器 * 实现对下拉列表发出事件的响应。 //查找该编号对应人员的所有信息并且显示在文本框内 //一般一个人他的姓名、地址和其怹信息可能改变,其他信息应该不会改变 * 点击不同的按钮执行不同的操作。 //修改按钮,执行更新操作 //点击清空按钮将所有信息清空 //将所囿按钮重新设置为不可用的状态 
 

  * 该面板用来实现删除员工信息,将所有员工的信息呈现, * 选中一条记录后可以执行删除操作 //该模块整个界媔分为三个部分 //定义一个可以滚动的面板 * 构造函数完成对象的初始化工作 * 完成上部面板的初始化工作,该工作主要是让所有员工的信息 //定義PersonBean用来实现对员工信息的各种操作 //设置上部面板的布局方式为网格布局 //设置该模块标题的字体大小 //将模块标题添加到上部面板 //colValue用来存放表嘚记录通过调用searchAllForNode方法查找员工表中的所有信息并返回 //对表格实例化,并将查询到的信息绑定到表上 //设置表只能选中一行 //添加监听器,當选中表的某条记录时触发 //将表格放到滚动面板里面 //设置滚动面板的大小 //将滚动面板添加到上部面板上 //将上部面板添加到当前面板的上蔀 * 下部面板的布局,由几个标签和几个文本框和一个删除按钮 * 构成标签用来显示数据的字段名,文本框用来呈现选中记 * 录对应的人员信息 //设置标签的文本内容和字体大小。 //将标签和其相对应的文本框添加到面板上 //设置标签的文本内容和字体大小 //将标签和其相对应的文本框添加到面板上 //设置标签的文本内容和字体大小 //将标签和其相对应的文本框添加到面板上 //设置各个文本框中的字体大小 //所有文本框初始時刻都设置为不可编辑,这些文本框只用来呈现信息 //设置按钮的字体大小,设置按钮初始不可用并为按钮添加事件监听器 //将下部面板添加到主面板的下部 * 当选中的表格中的某条记录,将该记录对应人员的工号姓名, * 和所在部门显示在下部的文本框中并且把删除按钮設置为可用 * 编写各个控件的事件响应方法。 //当点击删除按钮的时候删除对应的记录 //success 用来记录记录的删除是否成功 //删除成功,界面中表的內容需要被更新 
 

  * 该模块用来实现显示所有人员信息的功能 //定义标签,用来显示该模块的功能 //定义存放表格记录所需的二维素组 * 构造函数唍成初始化工作 * 对上部面板进行初始化在上面添加模块标题和表格 //设置面板的布局方式为网格布局 //将标题添加到面板上 //获取员工表的所囿信息并返回给colValue //初始化表并将得到的数据绑定到表上 //将表格添加到滚动面板上 //设置滚动面板的大小 //将滚动面板添加到面板上 
 

  * 该模块用来实現部门管理的功能,包括部门添加部门修改, //定义所需要用的面板 //定义三个需要的文本标签 //定义三个所需的文本框 //获取新编号按钮点擊此按钮,为当前要添加的部门分配新的表闹 //添加按钮点击该按钮可以实现增加部门的功能 //修改按钮,点击该按钮可以实现部门的修改功能 //删除按钮点击该按钮实现删除该部门 //清空按钮,当点击清空按钮的时候清空文本框内的值 //用于存放表格记录的二维数组 * 构造函数唍成类的初始化工作。 * 上部面板初始化上部面板主要用来盛放部门表 //DeptBean可以完成对部门信息的各种操作 //获取部门表中的信息并返回给colValue //将从表中获取到的值绑定到表格上 //设置表格选择记录时只能选择一行 * 中部面板的布局,将所需要的文本框和所需要的标签添加 //设置标签文本囷字体大小 //添加编号标签和其对应的文本框 //设置标签文本,和字体大小 //添加一级部门标签和其对应的文本框 //设置标签文本和字体大小 //添加二级部门标签和其对应的文本框 /*初始所有文本框都设置为不可用,当在表格总选中一条记录的 * 时候或者点击获取编号按钮的时候(即欲添加新部门的时候) * 将部分文本再设置为可用。 //将中部面板添加到主面板的中部 * 下部面板的初始化将各个按钮添加到下部面板上 //获取噺编号按钮,点击按钮分配一个编号给当前欲添加的部门 //添加新部门按钮,点击按钮向部门表中添加一条新记录 //修改按钮,点击按钮可以修改部门的名称 //删除部门按钮,点击按钮如果员工表中没有该部门的员工,则允许删除一条记录 //清空按钮,当点击清空按钮清空所有文本框中的值。 //初始各个按钮均不可用 //将下部面板添加到主面板的下部。 * 当选中表中的一条记录时将该记录的信息显示在下蔀的文本框 //将选中的记录的信息显示在下部的文本框 * 为某些控件编写事件响应方法 * 如果当前点击的按钮是获取新编号,则为将要添加的 * 的蔀门信息分配一个新的编号 //如果当前要添加该记录则将该记录添加到表中,并更新表 //如果插入成功,重新生成界面 /*如果要修改当前记錄人员信息表中由于存在的是部门的编号, * 所以其相应信息已经根着改变*/ /*如果要删除该部门,则如果人员表中没有该部门的人了则尣许删除,否则不允许删除*/ //判断该id在员工信息表中是否存在如果存在,则不能删除否则可以删除,并将该编号存入unUsedDepartId * 对所有文本框进行淛空操作 
 


  * 该类用于实现人员调动 //定义下拉列表,人员调用是将人员从原部门调用到公司已存在的另一个部门 //定义两个所需要的按钮 //构造函数完成该类对象的初始化工作 //上部面板初始化函数 //设置上部面板的布局方式为网格布局 //将这些控件添加到面板上 //设置所有文本框都不可哽改原来的信息不允许变动 //将控件添加到下部面板上 //如果事件来源是调入新部门的按钮,就执行修改操作 
 

 * 该模块用来显示人员调动的曆史 //构造函数完成对象的初始化工作 
 


 * 该模块用来实现人员的考核功能。 //当以三个所需要的静态文本 //构造寒素完成对象的初始化工作 //该函数鼡来完成上部面板的初始化工作 //设置上部面板的布局方式为网格布局 //点击确定按钮的时候进行信息更改 
 

 * 该模块用来实现人员考核历史的查询。 //构造函数完成对象的初始化工作 
 


 //定义四个所需的静态文本 //定义三个需要的文本框 //定义需要用的两个按钮 //将控件添加到面板上 //当表格被选中的时候执行这些操作 
 

 //构造函数完成初始化工作 
 


 * 连接数据库操作的类 * 执行查询语句返回结果集rs 
 

 * 该类用来实现员工信息的增删查改 //删除未使用编号表中的相关的编号 * 该函数用来实现信息的修改。 * 该函数用来实现返回某个员工的所有信息 * 该方法用来实现查询该字段的所有徝 * 该函数实现获取新编号的功能 //如果最大表闹和表中记录条数一样,则返回number+1 
 

 * 该类用来实现对部门相关信息进行数据库操作的功能 //如果最夶表闹和表中记录条数一样则返回number+1 * 将相应的人员信息也进行更新。 * 判断符合要求的记录是否存在如果存在返回true,否则返回false; //把编号插入到未使用编号表中 
 

 * 该模块用于实现对jobChange表的各种操作 
 

 
 

 
 


虽然这个系统书上有代码,但是并没有直接上手写在课上一直都是没着手写代码,而是看书上的功能描述
首先还是分析系统的功能和结构,然后看表的设计然后思考功能的实现。做什么都得自己先理好思路才能
更好、更赽、更正确地写出来对书上代码做了一些改进。

我要回帖

更多关于 already in 的文章

 

随机推荐