Java课程设计报告

合肥学院

计算机科学与技术系

课程设计报告

20##~20##学年第#学期

课程:Java语言程序设计

课程设计名称:企业人事管理系统

专业班级:08网络工程(1)班

20##年9月

一、需求分析

 系统需求分析:考察中小企业企业,要求设计一套人事管理系统,其中应具有一定的人事档案管理功能。企业人事管理系统是企业进行管理的不可缺少的一部分。职工的个人信息,各部门的信息,以及职工和部门之间的联系。职工的考勤,职务,部门等。为了方便企业领导掌握本企业的人事信息,在系统中加入查询功能,包括职工的所有信息。还加入了对人事变动(删除、添加、修改)的功能。高效的人事管理系统是中小企业系统之所需。

 本系统的具体要求为:

①      能全面管理公司人事管理中的各类主体,如人员信息查询,人员信息更新,人员添加,部门分配等;

②      通过计算机能方便的维护(包括插入,删除,修改更新等)各类信息表;

③      能通过开发语言实现对数据库的操作,查询基于某个信息表的所须信息;

④      系统具有操作方便,简捷等特点。

 功能需求分析:①. 在数据库服务器如SQL Server 2000中,建立个关系模式对应的库表,并确定主键,索引,参照完整性,用户自定义完整性等。

 ② 能对各库表进行输入,修改,删除,添加,查询等基本操作。

 ③能实现如下各类查询:

    能统计职工的基本情况,如部门,姓名,年龄,性别等

      能够统计职工在出勤方面的情况

 ④ 要求所设计系统界面友好,功能安排合理,操作使用方便,并能进一步考虑子系统在安全性,完整性,并发控制,备份恢复等方面的功能要求

二. 设计

1.设计思想:

  这个题目主要是通过在界面上进行操作从而对数据库里的内容进行添加、删除、修改等各项操作。首先对数据库进行设计,新建一个数据库,在这个数据库里建7个表,按照题目需要对各表进行设计。进行界面设计的时候,因为要在主程序界面上进行操作,所以需要在设计时需要设计一个主函数,在主函数上进行操作,根据需要调用不同的子程序进行不同的功能操作。

2.功能设计

  根据本次课程设计的要求,将该程序的功能设计如下:运行主程序,进入操作界面,通过链接数据库,对该程序进行各项操作。进入主界面以后,管理员可以对数据库里各员工的信息进行插入、删除、更新、查询等各项操作,临时添加的用户只能对数据库里的信息进行查询。进行各项操作后,会显示相应的信息,并以此对原本数据库信息进行更新。

3. 数据库设计

数据库在一个信息管理系统中占有非常重要的地位,数据库的结构设计的好坏直接影响了数据库的效率。

   在充分需求分析的基础上,经过逐步的抽象,概括,分析,充分研讨,可画出如下反映人事管理系统的E-R图:

用户实体图:

                  用户名——用户——密码

员工基本信息实体及联系图:

参加工作时间    进入公司时间  原部门   现部门  

 员工调入基本信息实体及联系图:

 员工调出基本信息实体及联系图

员工考勤信息表:

上下班时间表:    上班时间————时间表————下班时间

员工考勤信息统计表:  

4.详细设计 

数据库详细设计:

新建一个数据库,在其中建立7个不同的表格,分别记录为:上下班时间表,员工信息表,员工考勤信息统计表,员工考勤表,员工调入信息表,员工调出信息表,用户表。

CREATE TABLE [上下班时间表] (

    [上班时间] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [下班时间] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL

) ON [PRIMARY]

GO

CREATE TABLE [员工信息表] (

    [员工编号] [char] (53) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [员工姓名] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [性别] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [籍贯] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [年龄] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [生日] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,

    [学历] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [专业] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [住址] [char] (60) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [邮编] [char] (53) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [电话] [char] (53) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [参加工作时间] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [进入公司时间] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [原部门] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,

    [现部门] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [起薪时间] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [职务] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [备注] [char] (60) COLLATE Chinese_PRC_CI_AS NULL

) ON [PRIMARY]

GO

CREATE TABLE [员工考勤信息统计表] (

    [员工编号] [char] (53) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [员工姓名] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [迟到次数] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,

    [早退次数] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,

    [病假天数] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,

    [事假天数] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,

    [总请假天数] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,

    [总出差天数] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,

    [总加班天数] [char] (10) COLLATE Chinese_PRC_CI_AS NULL

) ON [PRIMARY]

GO

CREATE TABLE [员工考勤表] (

    [员工编号] [char] (53) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [当前日期] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [上班时间] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [下班时间] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [病假] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,

    [事假] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,

    [特殊加班天数] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,

    [正常加班天数] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,

    [出差目的地] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,

    [出差天数] [char] (10) COLLATE Chinese_PRC_CI_AS NULL

) ON [PRIMARY]

GO

CREATE TABLE [员工调入信息表] (

    [员工姓名] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [考试成绩] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [调入理由] [char] (100) COLLATE Chinese_PRC_CI_AS NULL ,

    [单位意见] [char] (100) COLLATE Chinese_PRC_CI_AS NULL ,

    [备注] [char] (100) COLLATE Chinese_PRC_CI_AS NULL

) ON [PRIMARY]

GO

CREATE TABLE [员工调出信息表] (

    [员工编号] [char] (53) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [员工姓名] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [调出理由] [char] (100) COLLATE Chinese_PRC_CI_AS NULL ,

    [单位意见] [char] (100) COLLATE Chinese_PRC_CI_AS NULL ,

    [备注] [char] (100) COLLATE Chinese_PRC_CI_AS NULL

) ON [PRIMARY]

GO

CREATE TABLE [用户表] (

    [用户名] [char] (53) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [密码] [float] NULL

) ON [PRIMARY]

GO

主要程序设计:

1     Denglu.java:登录界面的设计,设计3个标签分别记录地址、用户名、密码、设计两个明文文本框,分别输入地址和用户名,设计一个密文文本框,输入密码,保证输入的密码不可见,在登录后,就连接到数据库,并将连接保存到线程中,这样就保证了数据库操作的及时性和高效性。

2     Caozuo.java:主界面的设计,各个功能按钮、菜单的设计,在主程序中,利用线程技术,主程序界面能显示当前具体的日期时间,在未登录前,主程序的关键按钮和菜单项不可用,当判断到用户登录后关键按钮设为可用,保证了程序使用过程中的安全性。

3     JDBC.java:sqlserver2000数据库驱动,完成加载驱动、建立数据库连接、关闭数据库连接等功能,建立的数据库连接保存到线程中。

4     BaseDao.java:主要执行数据库语言插入、修改、删除等操作,发送数据库语言到数据库执行,执行成功后返回true,否则返回false。

5     Dao.java:继承BaseDao.java类,实现具体的每个表的数据库操作,包括查询、查询、修改、添加等功能,其中的删除、修改、添加继承BaseDao.Java类的方法。

6     Permessage.java:实现员工基本信息的管理界面以及功能的设计,在此要对登录用户进行判断,若是普通用户,只能使用查询按钮,只有管理员账户,才能进行各项操作。

7     Work.java:实现员工考勤信息的管理界面以及功能模块的设计,在此要对登录用户判断,若是普通用户,只能使用查询按钮,只有管理员账户,才能进行各项操作。

    

三. 调试及测试

1、调试过程中遇到的主要问题及解决方法

  在进行程序运行的时候,因为使用的数据库版本不一致,所以必须在机器上安装新的数据库驱动,并且对环境变量进行设置。在数据库驱动加载成功以后,会出现操作界面,但是单击登录,程序停滞,并且会显示加载数据库失败,经检查发现,这是因为在数据库进行设置的时候没有对数据库登录用户的属性进行设置,需要对数据库访问和数据库角色进行设置,才能进行具体操作。

2、对设计和编码的回顾讨论和分析;

   程序连接到本地或者远程数据库,这种机制对数据库的安全性起到了有效的保证,在程序中用户分为普通用户和管理员用户,权限分配合理,这样又保证了程序运行的安全性和数据库操作的安全性。程序中的密码存在缺点,本次设计只使用float类型的密码,密码存在不健壮性。在程序中对两次线程的使用,恰到好处,保证操作的及时性以及准确性。在程序输出查询结果后放到二维表中,在将二维表放到对话框中。

3、程序运行的时空效率分析

①数据库登录连接后就一直保存在线程中,占用系统资源;

②时间显示中使用线程,占用系统资源

③数据库一直连接中,占用网络通信资源

4、测试数据集

四、经验和体会。

  在这次课程设计中,对JAVA开发语言有了进一步的了解和掌握.确立好的实体模型是最基本的,一个好的实体模型会使数据库查询更加方便,数据冗余也会很小。在建立数据库过程中,一些数据库语言掌握不是很熟练,只有通过不断的学习和练习,熟悉掌握宿主语言,充实自己的经验,才能逐渐独立建立好的数据库。

   这次实验安排两个人一组,相互之间有所讨论,并在一些有分歧的地方交换了意见,最终达到一致。通过这次课程设计,不仅仅对自己所学的Java知识和数据库有了更深一步的认识,并且还很好的培养了我们相互协作的能力,这对我们以后学习工作有所帮助。

附录:主要源程序

操作主程序:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.event.*;

import java.io.*;

import java.net.*;

import java.util.*;

import java.util.Date;

import java.sql.*;

import java.applet.Applet;

import java.*;

public class caozuo extends JFrame implements ActionListener

{

 public static Image icon,pic;//程序图标

 public static JLabel status;

 public static JButton    b1,b2,b3,b4,b5,b6,b7;

 JLabel     time0,time1,time2,time3;

//建立菜单

 JMenuBar jmenubar=new JMenuBar();

//建立菜单组

 JMenu startmenu=new JMenu("开始(V)");

//建立菜单项

 public static JMenuItem b7item=new  JMenuItem("登录(P)");

 public static JMenuItem b1item=new JMenuItem("系统人员信息管理(S)");

 public static JMenuItem b2item=new JMenuItem("员工基本信息管理(T)");

 public static JMenuItem b3item=new JMenuItem("员工考勤信息管理(X)");

 public static JMenuItem b4item=new JMenuItem("员工调动信息管理(G)");

 public static JMenuItem b5item=new JMenuItem("注销(C)");

 public static JMenuItem b6item=new JMenuItem("退出(Z)");

 JMenu helpmenu=new JMenu("帮助(H)");

 JMenuItem helpitem=new JMenuItem("帮助(H)");

 Graphics g;

 //框架的大小

 Dimension facesize=new Dimension(1000,600);

 JPanel downpanel,timepanel;

 GridBagLayout gridbag;

 GridBagConstraints gridbagcon;

 public caozuo()

     {

    Container contentpane=getContentPane();//一般的 Abstract Window Toolkit(AWT)

     //容器对象是一个可包含其他 AWT 组件的组件。

     contentpane.setLayout(new BorderLayout());

      //添加菜单栏

      startmenu.add(b7item);

      startmenu.add(b1item);

      startmenu.add(b2item);

      startmenu.add(b3item);

      startmenu.add(b4item);

      startmenu.add(b5item);

      startmenu.add(b6item);

      jmenubar.add(startmenu);

      helpmenu.add(helpitem);

      jmenubar.add(helpmenu);

      setJMenuBar(jmenubar);

      //初始化时令停止服务按钮不可用

      b1item.setEnabled(false);

      b2item.setEnabled(false);

     b3item.setEnabled(false);

     b4item.setEnabled(false);

      b5item.setEnabled(false);

      //为菜单栏添加事件监听

      b7item.addActionListener(this);

      b1item.addActionListener(this);

      b2item.addActionListener(this);

      b3item.addActionListener(this);

      b4item.addActionListener(this);

      b5item.addActionListener(this);

      b6item.addActionListener(this);

      helpitem.addActionListener(this);

      status=new JLabel("您好:");

      status.setFont(new Font("宋体", Font.BOLD, 14));// 设置标签中的文字为宋体、粗体、14号

      status.setForeground(new Color(0, 0, 255));// 设置标签中的文字为红色

      status.setHorizontalAlignment(SwingConstants.CENTER);// 设置标签中的文字居中显示

      

      b1=new JButton("系统人员信息管理");

      b1.setEnabled(false);

      b2=new JButton("员工基本信息管理");

      b2.setEnabled(false);

     b3=new JButton("员工考勤信息管理");

      b3.setEnabled(false);

      b4=new JButton("员工调动信息管理");

      b4.setEnabled(false);

      b7=new JButton("登录");

     b5=new JButton("注销");

      b5.setEnabled(false);

     b6=new JButton("退出");

      time0=new JLabel();

     time0.setFont(new Font("", Font.BOLD, 12));

      time0.setText("  今天是:");

      time1=new JLabel();

     time1.setFont(new Font("", Font.BOLD, 12));

      time1.setForeground(new Color(120, 1, 120));// 设置标签中的文字为红色

      time1.setHorizontalAlignment(SwingConstants.CENTER);// 设置标签中的文字居中显示

      time1.setText(Today.getDateOfShow());

      time2=new JLabel();

     time2.setFont(new Font("", Font.BOLD, 12));

      time2.setForeground(new Color(120, 1, 120));// 设置标签中的文字为红色

      time2.setHorizontalAlignment(SwingConstants.CENTER);// 设置标签中的文字居中显示

      time2.setText(Today.getDayOfWeek());

      time3=new JLabel();

     time3.setFont(new Font("宋体", Font.BOLD, 14));// 设置标签中的文字为宋体、粗体、14号

      time3.setForeground(new Color(255, 0, 0));// 设置标签中的文字为红色

      time3.setHorizontalAlignment(SwingConstants.CENTER);// 设置标签中的文字居中显示

      new Time().start();// 开启线程

      Calendar now;

      int hour;

      int minute;

      int second;

              now = Calendar.getInstance();

              hour = now.get(Calendar.HOUR_OF_DAY);

              minute = now.get(Calendar.MINUTE);

              second = now.get(Calendar.SECOND);

              time3.setText(hour + ":" + minute + ":" + second);

     //当鼠标放上显示信息

      b1.setToolTipText("在这里设置查询系统管理员");

      b2.setToolTipText("在这里设置查询员工信息");

      b3.setToolTipText("在这里设置查询考勤信息");

     b4.setToolTipText("在这里设置查询调动信息");

     b7.setToolTipText("登录到数据库");

      b5.setToolTipText("注销本次登录");

      b6.setToolTipText("退出系统");

      //添加按钮时间的监听

      b1.addActionListener(this);

      b2.addActionListener(this);

      b3.addActionListener(this);

      b4.addActionListener(this);

      b5.addActionListener(this);

      b6.addActionListener(this);

      b7.addActionListener(this);

      JPanel downpanel=new JPanel();

      JPanel timepanel=new JPanel();

     GridBagLayout gridbag=new GridBagLayout();

     downpanel.setLayout(gridbag);

      timepanel.setLayout(gridbag);

      JLabel topLabel = new JLabel();

      topLabel.setPreferredSize(new Dimension(0, 100));

      topLabel.setHorizontalAlignment(SwingConstants.CENTER);

      URL topUrl = this.getClass().getResource("deng.jpg");

      ImageIcon topIcon = new ImageIcon(topUrl);

      topLabel.setIcon(topIcon);

      getContentPane().add(topLabel, BorderLayout.CENTER);

      gridbagcon=new GridBagConstraints();

      gridbagcon.gridx=0;

     gridbagcon.gridy=0;

      gridbagcon.insets=new Insets(2,2,2,2);

      gridbagcon.ipadx=40;

      gridbagcon.ipady=40;

     gridbag.setConstraints(b1,gridbagcon);

      downpanel.add(b1);

      gridbagcon=new GridBagConstraints();

      gridbagcon.gridx=0;

     gridbagcon.gridy=1;

      gridbagcon.insets=new Insets(2,2,2,2);

      gridbagcon.ipadx=40;

      gridbagcon.ipady=40;

     gridbag.setConstraints(b2,gridbagcon);

      downpanel.add(b2);

      gridbagcon=new GridBagConstraints();

      gridbagcon.gridx=0;

     gridbagcon.gridy=2;

      gridbagcon.insets=new Insets(2,2,2,2);

      gridbagcon.ipadx=40;

      gridbagcon.ipady=40;

     gridbag.setConstraints(b3,gridbagcon);

      downpanel.add(b3);

      gridbagcon=new GridBagConstraints();

      gridbagcon.gridx=0;

     gridbagcon.gridy=3;

      gridbagcon.insets=new Insets(2,2,2,2);

      gridbagcon.ipadx=40;

      gridbagcon.ipady=40;

     gridbag.setConstraints(b4,gridbagcon);

      downpanel.add(b4);

      

      gridbagcon=new GridBagConstraints();

      gridbagcon.gridx=0;

     gridbagcon.gridy=4;

      gridbagcon.insets=new Insets(2,2,2,2);

      gridbagcon.ipadx=120;

      gridbagcon.ipady=40;

     gridbag.setConstraints(b7,gridbagcon);

      downpanel.add(b7);

    

      gridbagcon=new GridBagConstraints();

      gridbagcon.gridx=0;

     gridbagcon.gridy=5;

      gridbagcon.insets=new Insets(2,2,2,2);

      gridbagcon.ipadx=120;

      gridbagcon.ipady=40;

     gridbag.setConstraints(b5,gridbagcon);

      downpanel.add(b5);

      gridbagcon=new GridBagConstraints();

      gridbagcon.gridx=0;

     gridbagcon.gridy=6;

      gridbagcon.insets=new Insets(2,2,2,2);

      gridbagcon.ipadx=120;

      gridbagcon.ipady=40;

     gridbag.setConstraints(b6,gridbagcon);

      downpanel.add(b6);

      gridbagcon=new GridBagConstraints();

      gridbagcon.insets=new Insets(2,2,2,2);

      gridbagcon.fill=GridBagConstraints.HORIZONTAL;

      gridbagcon.anchor=GridBagConstraints.SOUTHWEST;

      gridbagcon.ipadx=20;

      gridbagcon.ipady=20;

     gridbag.setConstraints(time0,gridbagcon);

      timepanel.add(time0);

      gridbagcon=new GridBagConstraints();

      gridbagcon.insets=new Insets(2,2,2,2);

      gridbagcon.fill=GridBagConstraints.HORIZONTAL;

      gridbagcon.anchor=GridBagConstraints.SOUTHWEST;

      gridbagcon.ipadx=20;

      gridbagcon.ipady=20;

     gridbag.setConstraints(time1,gridbagcon);

      timepanel.add(time1);

      gridbagcon=new GridBagConstraints();

      gridbagcon.insets=new Insets(2,2,2,2);

      gridbagcon.fill=GridBagConstraints.HORIZONTAL;

      gridbagcon.anchor=GridBagConstraints.SOUTHWEST;

      gridbagcon.ipadx=20;

      gridbagcon.ipady=20;

     gridbag.setConstraints(time2,gridbagcon);

      timepanel.add(time2);

      gridbagcon=new GridBagConstraints();

      gridbagcon.insets=new Insets(2,2,2,2);

      gridbagcon.fill=GridBagConstraints.HORIZONTAL;

      gridbagcon.anchor=GridBagConstraints.SOUTHWEST;

      gridbagcon.ipadx=20;

      gridbagcon.ipady=20;

     gridbag.setConstraints(time3,gridbagcon);

      timepanel.add(time3);

    

    

      contentpane.add(status,BorderLayout.NORTH);

      contentpane.add(downpanel,BorderLayout.WEST);

      contentpane.add(timepanel,BorderLayout.SOUTH);

   

      //添加框架的关闭事件处理

     this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

     this.pack();

     //设置窗口属性

     this.setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));

     //设置框架的大小

    this.setSize(facesize);

     //设置程序窗口的位置

     Dimension screensize=Toolkit.getDefaultToolkit().getScreenSize();

      this.setLocation((int)(screensize.width-facesize.getWidth())/2,

      (int)(screensize.height-facesize.getHeight())/2);

      this.setResizable(true);

    this.setTitle("企业人事管理系统");

     this.setVisible(true);

      //程序图标

     icon=getImage("note.gif");

     this.setIconImage(icon);//设置程序图标

     show();

   

    //设置快捷键

      startmenu.setMnemonic('V');//服务菜单栏快捷键为V

     b7item.setMnemonic('P');

      b7item.setAccelerator(KeyStroke.getKeyStroke

          (KeyEvent.VK_P,InputEvent.CTRL_MASK));//端口设置快捷键Ctrl+P

     b1item.setMnemonic('S');

      b1item.setAccelerator(KeyStroke.getKeyStroke

          (KeyEvent.VK_S,InputEvent.CTRL_MASK));//启动服务快捷键Ctrl+S

      b2item.setMnemonic('T');

      b2item.setAccelerator(KeyStroke.getKeyStroke

          (KeyEvent.VK_T,InputEvent.CTRL_MASK));//停止服务快捷键Ctrl+T

      b3item.setMnemonic('X');

      b3item.setAccelerator(KeyStroke.getKeyStroke

          (KeyEvent.VK_X,InputEvent.CTRL_MASK));//退出快捷键Ctrl+X

      b4item.setMnemonic('G');

      b4item.setAccelerator(KeyStroke.getKeyStroke

          (KeyEvent.VK_G,InputEvent.CTRL_MASK));//退出快捷键Ctrl+G

      b5item.setMnemonic('C');

      b5item.setAccelerator(KeyStroke.getKeyStroke

          (KeyEvent.VK_C,InputEvent.CTRL_MASK));//退出快捷键Ctrl+C

      b6item.setMnemonic('Z');

      b6item.setAccelerator(KeyStroke.getKeyStroke

          (KeyEvent.VK_Z,InputEvent.CTRL_MASK));//退出快捷键Ctrl+Z

     helpmenu.setMnemonic('H');//帮助快捷键V

      helpitem.setMnemonic('H');

      helpitem.setAccelerator(KeyStroke.getKeyStroke

          (KeyEvent.VK_H,InputEvent.CTRL_MASK));//帮助快捷键Ctrl+H

   

     //关闭程序时的操作

     this.addWindowListener(

         new WindowAdapter(){

             public void windowClosing(WindowEvent i){

              System.exit(0); }

                                                       }

                               );

    

     }

   

     //事件处理

    public void actionPerformed(ActionEvent e)

     {

      Object obj=e.getSource();

      if(obj==b1||obj==b1item)

         {

          //系统管理

          user d1=new user(this);

          d1.show();

         }

      else if(obj==b2||obj==b2item)

         {

          //员工基本信息管理

          permessage d2=new permessage(this);

          d2.show();

         }

      else if(obj==b3||obj==b3item)

         {

          //员工考勤信息管理

          work d3=new work(this);

          d3.show();

         }

      else if(obj==b4||obj==b4item)

          {

          //员工调动信息管理

          move d4=new move(this);

          d4.show();

         }

      else if(obj==b7||obj==b7item)

         {

          //调出登录设置的对话框

         denglu d7=new denglu(this);

         d7.show();

         }

     else if(obj==b5||obj==b5item)

         {

          //注销

         int j=JOptionPane.showConfirmDialog(

              this,"真的注销吗?","注销",JOptionPane.YES_OPTION,

              JOptionPane.QUESTION_MESSAGE);

            if(j==JOptionPane.YES_OPTION)

              {

                 //注销

                 boolean closing=JDBC.closeConnection();

                 if(closing==true)

                   {

                      b1item.setEnabled(false);

                    b2item.setEnabled(false);

                   b3item.setEnabled(false);

                   b4item.setEnabled(false);

                    b5item.setEnabled(false);

                     b7item.setEnabled(true);

                     b1.setEnabled(false);

                    b2.setEnabled(false);

                   b3.setEnabled(false);

                    b4.setEnabled(false);

                     b5.setEnabled(false);

                     b7.setEnabled(true);

                      denglu.t1.setText("127.0.0.1");

                      denglu.t2.setText("sa");

                      denglu.t3.setText("");

                  }

                 else

                       {

                        JOptionPane.showMessageDialog(null, "注销失败,请检查原因!",

                                 "友情提示", JOptionPane.INFORMATION_MESSAGE);

                        return;

                        }

              }

          }

    else if(obj==helpitem)

         {

         //菜单栏中的帮助

         //调出帮助对话框

         Help helpDialog=new Help(this);

         helpDialog.show();

         }

     else if(obj==b6||obj==b6item)

         {

         //退出程序

         int j=JOptionPane.showConfirmDialog(

              this,"真的要退出吗?","退出",JOptionPane.YES_OPTION,

              JOptionPane.QUESTION_MESSAGE);

         if(j==JOptionPane.YES_OPTION)

              {

              boolean closing=JDBC.closeConnection();  

              System.out.println("安全退出!");

             System.exit(0);

              }

             }

        

        

     }

      //通过给定的文件名获得图像

    

     Image getImage(String filename)

     {

     URLClassLoader urlloader=(URLClassLoader)this.getClass().getClassLoader();

     URL url=null;

     Image image=null;

     url=urlloader.findResource(filename);

     image=Toolkit.getDefaultToolkit().getImage(url);

     MediaTracker mediatracker=new MediaTracker(this);

     try

         {

          mediatracker.addImage(image,0);

          mediatracker.waitForID(0);

         }

         catch(InterruptedException _ex)

         {

          image=null;

         }

         if(mediatracker.isErrorID(0))

         {

          image=null;

         }

          return image;

     }  

     class Time extends Thread

         {

         // 创建内部类

         public void run()

           {

              // 重构父类的方法

              while (true)

              {

                   Date date = new Date();// 创建日期对象

                   time3.setText(date.toString().substring(11, 19));// 获取当前时间,并显示到时间标签中

                   try

                   {

                       Thread.sleep(1000);// 令线程休眠1秒

                   }

                   catch (InterruptedException e)

                   {

                       e.printStackTrace();

                   }

            }

           }

         }

         public static void main(String[] args)

     {

     caozuo aww=new caozuo();

     }

 }

    

相关推荐