java課程設(shè)計(jì)人事管理系統(tǒng)_第1頁(yè)
java課程設(shè)計(jì)人事管理系統(tǒng)_第2頁(yè)
java課程設(shè)計(jì)人事管理系統(tǒng)_第3頁(yè)
java課程設(shè)計(jì)人事管理系統(tǒng)_第4頁(yè)
java課程設(shè)計(jì)人事管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、人事管理系統(tǒng).系統(tǒng)需求剖析:1)系統(tǒng)的功能設(shè)計(jì).2)系統(tǒng)功能構(gòu)造.3)數(shù)據(jù)庫(kù)設(shè)計(jì).二.功能模塊開發(fā).(1)查問(wèn)人員信息界面.(2)增添職工界面.(3)改正職工信息界面.(4)刪除職工界面.(5)職工查核界面.(6)職工查核歷史記錄界面.三.各個(gè)類說(shuō)明.四.程序代碼.(1)Manager.(2)CardEmploy.(3)SelEmploy.(4)AddEmploy.(5)ReviseEmploy.UpdDialog.6)DelEmploy.7)AllEmploy.8)Examine.9)History.10)EmployModel.11)AppraisalModel.12)SqlHelper.

2、一.系統(tǒng)需求剖析:(1)系統(tǒng)的功能設(shè)計(jì)職工信息管理:職工信息管理包含對(duì)職工基本信息和狀況進(jìn)行查問(wèn)、增添、刪除和改正及部門管理職工查核管理:包含對(duì)職工的查核狀況進(jìn)行操作,還能夠?qū)v史查核狀況進(jìn)行閱讀(2)系統(tǒng)功能構(gòu)造人事管理的系統(tǒng)構(gòu)造功能構(gòu)造如下圖:(3)數(shù)據(jù)庫(kù)設(shè)計(jì)職工基本表(Employinfo)名稱字段名稱數(shù)據(jù)種類主鍵非空工號(hào)Empnovarchar(10)YesYes姓名Enamevarchar(10)Noyes性別Sexvarchar(4)Noyes出生年代BirthdayDatetimeNoYes部門DeptNoChar(10)NoYes職務(wù)EjobChar(20)NoYes薪資Sal

3、floatNoYes職工查核表(Appraisal)名稱字段名稱數(shù)據(jù)種類主鍵非空工號(hào)Empnovarchar(10)yesyes查核Consequencevarchar(10)noyes改正日期RegDatedatetimeNoYes查核歷史記錄(History)名稱字段名稱數(shù)據(jù)種類主鍵非空流水號(hào)JourNoIntYesyes工號(hào)Empnovarchar(10)noyes姓名Enamevarchar(10)NoYes上一次查核OldInfovarchar(10)NoYes本次查核NewInfovarchar(10)NoYes改正日期RegDatedatetimeNoYes二.功能模塊開發(fā)(1)

4、查問(wèn)人員信息界面實(shí)例一個(gè)SelEmploy類,當(dāng)點(diǎn)擊“查問(wèn)”時(shí)調(diào)用EmployModel類的queryEmploy方法實(shí)現(xiàn)查問(wèn)2)增添職工界面實(shí)例一個(gè)AddEmploy類當(dāng)點(diǎn)擊“增添”時(shí)調(diào)用EmployModel類的updEmploy方法實(shí)現(xiàn)增添功能3)改正職工信息界面實(shí)例一個(gè)ReviseEmploy類當(dāng)點(diǎn)擊“改正”時(shí),先調(diào)用UpdDialo彈跳出一個(gè)改正信息對(duì)話框,信息改正完成后,調(diào)用EmployModel類的updEmploy方法實(shí)現(xiàn)改正功能4)刪除職工界面實(shí)例一個(gè)DelEmploy類當(dāng)點(diǎn)擊“刪除”時(shí)調(diào)用EmployModel類的updEmploy方法實(shí)現(xiàn)刪除功能5)職工查核界面實(shí)例一個(gè)E

5、xamine類當(dāng)點(diǎn)擊“確認(rèn)”時(shí)調(diào)用AppraisalModel類的updAppraisal方法來(lái)達(dá)成查核功能6)職工查核歷史記錄界面實(shí)例一個(gè)History類當(dāng)點(diǎn)擊時(shí)調(diào)用AppraisalModel類的updAppraisal方法來(lái)達(dá)成查核功能三.各個(gè)類說(shuō)明類之間的關(guān)系圖:1.Manager類Manager類的一個(gè)實(shí)例,進(jìn)而生成了人事管理系統(tǒng)的界面,用JSplitPane類將整個(gè)界面分為左右兩個(gè)部分。此中左邊實(shí)現(xiàn)了人事管理系統(tǒng)的功能樹,采納JTree類建立,同時(shí)實(shí)現(xiàn)了TreeSelectionListener接口,定義了該接口所一定實(shí)現(xiàn)的valueChanged(TreeSelectionEve

6、nte)方法,JSplitPane右側(cè)加入卡片布局CardEmploy類。當(dāng)JTree的TreeSelectionEvent事件發(fā)生時(shí),調(diào)用CardEmploy的c.show方法切換不一樣卡片,實(shí)現(xiàn)不一樣的管理界面。2.CardEmploy類CardEmploy為卡片布局類的面板,主要功能是增添各個(gè)界面的卡片,當(dāng)JTree的TreeSelectionEvent事件發(fā)生時(shí)。切換不一樣的卡片3.EmployModel、AppraisalModel類這兩個(gè)類繼承了AbstractTableModel,主要實(shí)現(xiàn)的功能是,寄存調(diào)用sqlhelper類獲取的數(shù)據(jù)。能夠經(jīng)過(guò)調(diào)用sqlhelper實(shí)現(xiàn)增刪查改

7、功能4.SqlHelper類主要就是連結(jié)數(shù)據(jù)庫(kù)的一些基礎(chǔ)操作是,方便代碼改正,重復(fù)使用5.SelEmploy這個(gè)類繼承Panel,為“查問(wèn)職工”的界面。實(shí)現(xiàn)了Actionlistener接口,當(dāng)ActionEvent事件發(fā)生時(shí),調(diào)用EmployModel類的queryEmploy方法實(shí)現(xiàn)查問(wèn)6.AddEmploy、ReviseEmploy、DelEmploy類這些類繼承Pane,分別為“增添職工信息”“改正職工信息”“刪除職工信息”的界面,這些類實(shí)現(xiàn)了Actionlistener接口,當(dāng)ActionEvent事件發(fā)生時(shí),調(diào)用EmployModel類的updEmploy方法實(shí)現(xiàn)增添、查問(wèn)、刪除、

8、功能Examine類這個(gè)類繼承Panel,為“查核職工”界面。這個(gè)類實(shí)現(xiàn)了Actionlistener接口,當(dāng)ActionEvent事件發(fā)生時(shí),(1)先經(jīng)過(guò)調(diào)用AppraisalModel的queryAppraisal獲取上一次查核成績(jī),(2)改正Appraisal表的查核成績(jī)(3)再把上一次查核成績(jī)跟本次查核成績(jī)加到History表中8.History這個(gè)類主假如把History表中的信息顯示到界面上。.程序代碼1)Managerpackagecom.Manager;importjava.awt.*;importjavax.swing.*;importimport;importimport.

9、*;publicclassManagerJPaneljp;JSplitPanejs;JScrollPanejsp;JTreetree;DefaultMutableTreeNodet2_2;CardEmployae;EmployModelem;publicstaticvoidManagermanager=extendsJFrameroot,t1,main(Stringargs)newManager();implementst2,t1_1,TreeSelectionListenert1_2,t1_3,t1_4,t1_5,t2_1,publicManager()給樹的各個(gè)結(jié)點(diǎn)賦值root=newDe

10、faultMutableTreeNode(人事管理系統(tǒng));t1=newDefaultMutableTreeNode(基本信息管理);t1_1=newDefaultMutableTreeNode(查問(wèn)職工);t1_2=newDefaultMutableTreeNode(增添職工);t1_3=newDefaultMutableTreeNode(改正職工信息);t1_4=newDefaultMutableTreeNode(刪除職薪資料);t1_5=newDefaultMutableTreeNode(查問(wèn)全體職工);t2=newDefaultMutableTreeNode(人員查核管理);t2_1=n

11、ewDefaultMutableTreeNode(人員查核);t2_2=newDefaultMutableTreeNode(查核歷史查問(wèn));t1.add(t1_1);t1.add(t1_2);t1.add(t1_3);t1.add(t1_4);t1.add(t1_5);t2.add(t2_1);t2.add(t2_2);root.add(t1);root.add(t2);tree=newJTree(root);對(duì)樹進(jìn)行監(jiān)聽tree.addTreeSelectionListener(this);/實(shí)例化CardEmploy面板并加到j(luò)splitpane的邊ae=newCardEmploy();j

12、s=newJSplitPane();js.setLeftComponent(tree);js.setRightComponent(ae);this.getContentPane().add(js);thisthisthisthis.setTitle(人事管理系統(tǒng));.setVisible(true);.setSize(600,500);.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);publicvoidvalueChanged(TreeSelectionEvente)獲取點(diǎn)擊結(jié)點(diǎn)名稱DefaultMutableTreeNodedpath=(Def

13、aultMutableTreeNode)tree.getLastSelectedPathComponent();/經(jīng)過(guò)點(diǎn)擊不一樣結(jié)點(diǎn)切換不一樣界面if(dpath.equals(t1_1)ae.c.show(ae,1);elseif(dpath.equals(t1_2)ae.c.show(ae,2);elseif(dpath.equals(t1_3)ae.c.show(ae,3);elseif(dpath.equals(t1_4)ae.c.show(ae,4);elseif(dpath.equals(t1_5)ae.c.show(ae,5);elseif(dpath.equals(t2_1)a

14、e.c.show(ae,6);elseif(dpath.equals(t2_2)ae.c.show(ae,7);2)CardEmploy/*用卡片布局設(shè)置各個(gè)界面*/packagecom.Manager;importjavax.swing.*;importjava.awt.*;publicclassCardEmployCardLayoutc;extendsPanel查問(wèn)表SelEmployselE;增添表AddEmployaddE;改正職工信息表ReviseEmployrevE;刪除職工表格DelEmploydelE;全部職工信息AllEmployallE;職工查核表ExamineexaE;歷

15、史記錄界面HistoryHis;publicCardEmploy()/查問(wèn)職工表selE=newSelEmploy();增添職工表addE=newAddEmploy();/改正職工信息revE=newReviseEmploy();刪除職工表格delE=newDelEmploy();全部職工信息allE=newAllEmploy();職工查核表exaE=newExamine();歷史記錄界面His=newHistory();JPaneljp=newJPanel();/定義cardemploy面板為卡片布局把各個(gè)面板加入到C的卡片布局中c=newCardLayout();this.setLayou

16、t(c);this.add(selE,1);this.add(addE,2);this.add(revE,3);this.add(delE,4);this.add(allE,5);this.add(exaE,6);this.add(His,7);3)SelEmploy/*SelEmploy類設(shè)置查問(wèn)職工界面*/packagecom.Manager;importjava.awt.*;importjavax.swing.*;importpublicclassSelEmployextendsPanelimplementsActionListenerEmployModelem;JLabeljl;JTe

17、xtFieldjtf;JButtonjb;JTablejt;JScrollPanejsp;JPaneljp1;publicSelEmploy()北部jp1=newJPanel();jl=newJLabel(輸入職工號(hào):);jtf=newJTextField(20);jb=newJButton(查問(wèn));對(duì)查問(wèn)按鈕監(jiān)聽jb.addActionListener(this);jp1.add(jl);jp1.add(jtf);jp1.add(jb);中部em=newEmployModel();Stringparas=1;em.queryEmploy(select*fromEmployinfowhere1

18、=?,paras);jt=newJTable(em);jsp=newJScrollPane(jt);this.setLayout(newBorderLayout();this.add(jp1,BorderLayout.NORTH);this.add(jsp,BorderLayout.CENTER);publicvoidactionPerformed(ActionEvente)if(e.getSource()=jb)Stringname=this.jtf.getText().trim();Stringsql=select*fromEmployinfowhereEmpno=?;Stringpara

19、s=name;em=newEmployModel();em.queryEmploy(sql,paras);查找成功更新表jt.setModel(em);4)AddEmploypackagecom.Manager;importjava.awt.*;importjavax.swing.*;importpublicclassAddEmployextendsPanelimplementsActionListenerJLabeljl,jl1,jl2,jl3,jl4,jl5,jl6,jl7;JButtonjb1,jb2;JTextFieldjtf1,jtf2,jtf3,jtf4,jtf5,jtf6,jtf

20、7;JPaneljp1,jp2,jp3,jp4;EmployModelem;publicAddEmploy()jl1=newJLabel(工號(hào):);jl2=newJLabel(姓名:);jl3=newJLabel(性別:);jl4=newJLabel(出生年代:);jl5=newJLabel(部門:);jl6=newJLabel(職位:);jl7=newJLabel(薪資:);jtf1=newJTextField(20);jtf2=newJTextField(20);jtf3=newJTextField(20);jtf4=newJTextField(20);jtf5=newJTextField

21、(20);jtf6=newJTextField(20);jtf7=newJTextField(20);jb1=newJButton(增添);jb2=newJButton(撤消);監(jiān)聽增添撤消按鈕jb1.addActionListener(this);jb2.addActionListener(this);jp1=newJPanel(newGridLayout(7,1);jp2=newJPanel(newGridLayout(7,1);jp3=newJPanel();jp1.add(jl1);jp1.add(jl2);jp1.add(jl3);jp1.add(jl4);jp1.add(jl5);

22、jp1.add(jl6);jp1.add(jl7);jp2.add(jtf1);jp2.add(jtf2);jp2.add(jtf3);jp2.add(jtf4);jp2.add(jtf5);jp2.add(jtf6);jp2.add(jtf7);jp3.add(jb1);jp3.add(jb2);jp4=newJPanel(newBorderLayout();jp4.add(jp1,BorderLayout.WEST);jp4.add(jp2,BorderLayout.EAST);jp4.setSize(300,300);this.setLayout(newFlowLayout();this

23、.add(jp4);this.add(jp3);publicvoidactionPerformed(ActionEvente)if(e.getSource()=jb1)/調(diào)用EmployModel里的updEmploy方法,實(shí)現(xiàn)對(duì)表格的增添Stringsql=insertintoEmployinfovalues(?,?,?,?,?,?,?);Stringparas=jtf1.getText(),jtf2.getText(),jtf3.getText(),jtf4.getText(),jtf5.getText(),jtf6.getText(),jtf7.getText();em=newEmplo

24、yModel();if(em.updEmploy(sql,paras)當(dāng)增添新職工成功時(shí),則彈出”增添成功“的對(duì)話框JOptionPane.showMessageDialog(this,增添成功);elseif(!em.updEmploy(sql,paras)JOptionPane.showMessageDialog(this,增添失敗);當(dāng)新職工加入成功后,要把新加入職工的工號(hào)加到查核表AppraisalModeltemp=newAppraisalModel();Stringsql1=insertintoAppraisal(Empno)values(?)Stringparas1=jtf1.g

25、etText();temp.updAppraisal(sql1,paras1);elseif(e.getSource()=jb2)jtf1.setText();jtf2.setText();jtf3.setText();jtf4.setText();jtf5.setText();jtf6.setText();jtf7.setText();5)ReviseEmploypackagecom.Manager;/*改正職工界面*/importjava.awt.*;importimportjavax.swing.*;publicclassReviseEmployextendsPanelimplement

26、sActionListenerJTablejt;JScrollPanejsp;JButtonjb1,jb2;JPaneljp1,jp2;EmployModelem;JLabeljl1;publicReviseEmploy()jl1=newJLabel(改正職工信息,JLabel.CENTER);jl1.setFont(newFont(宋體,Font.BOLD,28);jp2=newJPanel();jp2.add(jl1);em=newEmployModel();Stringparas=1;em.queryEmploy(select*fromEmployinfowhere1=?,paras);

27、jt=newJTable(em);jsp=newJScrollPane(jt);jb1=newJButton(改正);jb2=newJButton(刷新);對(duì)兩個(gè)按鈕進(jìn)行監(jiān)聽jb1.addActionListener(this);jb2.addActionListener(this);this.setLayout(newBorderLayout();jp1=newJPanel();jp1.add(jb1);jp1.add(jb2);this.add(jp2,BorderLayout.NORTH);this.add(jsp,BorderLayout.CENTER);this.add(jp1,Bo

28、rderLayout.SOUTH);publicifvoidactionPerformed(ActionEvente)(e.getSource()=jb1)introwNum=this.jt.getSelectedRow();if(rowNum=-1)JOptionPane.showMessageDialogreturn;(this,請(qǐng)選擇一行);彈出改正對(duì)話框newUpdDialog(em,rowNum);elseif(e.getSource()=jb2)刷新改正界面中的表格em=newEmployModel();Stringparas1=em.queryEmploy(1;select*fr

29、omEmployinfowhere1=?,paras1);jt.setModel(em);UpdDialogpackagecom.Manager;/*彈出改正界面*/importjavax.swing.*;importjava.awt.*;importpublicclassUpdDialogextendsJDialogimplementsJLabeljl1,jl2,jl3,jl4,jl5,jl6,jl7;JButtonjb1,jb2;JTextFieldjtf1,jtf2,jtf3,jtf4,jtf5,jtf6JPaneljp1,jp2,jp3;,ActionListenerjtf7;publ

30、icUpdDialog(EmployModelem,introwNums)jl1=newJLabel(工號(hào):);jl2=newJLabel(姓名:);jl3=newJLabel(性別:);jl4=newJLabel(出生年代:);jl5=newJLabel(部門:);jl6=newJLabel(職位:);jl7=newJLabel(薪資:);jtf1=newJTextField(20);jtf2=newJTextField(30);jtf3=newJTextField(30);jtf4=newJTextField(30);jtf5=newJTextField(30);jtf6=newJText

31、Field(30);jtf7=newJTextField(30);/初始化jtextfield數(shù)據(jù)jtf1.setText(String)em.getValueAt(rowNums,0);jtf1.setEditable(false);jtf2.setText(String)em.getValueAt(rowNums,1);jtf3.setText(String)em.getValueAt(rowNums,2);jtf4.setText(String)em.getValueAt(rowNums,3);jtf5.setText(String)em.getValueAt(rowNums,4);jt

32、f6.setText(String)em.getValueAt(rowNums,5);jtf7.setText(String)em.getValueAt(rowNums,6);jb1=newJButton(改正);jb2=newJButton(撤消);對(duì)兩個(gè)按鈕監(jiān)聽jb1.addActionListener(this);jb2.addActionListener(this);jp1=newJPanel();jp2=newJPanel();jp3=newJPanel();設(shè)置布局jp1.setLayout(newGridLayout(7,1);jp2.setLayout(newGridLayou

33、t(7,1);增添組件jp1.add(jl1);jp1.add(jl2);jp1.add(jl3);jp1.add(jl4);jp1.add(jl5);jp1.add(jl6);jp1.add(jl7);jp2.add(jtf1);jp2.add(jtf2);jp2.add(jtf3);jp2.add(jtf4);jp2.add(jtf5);jp2.add(jtf6);jp2.add(jtf7);jp3.add(jb1);jp3.add(jb2);this.add(jp1,BorderLayout.WEST);this.add(jp2,BorderLayout.CENTER);this.add

34、(jp3,BorderLayout.SOUTH);this.setSize(300,250);this.setVisible(true);this.setLocation(200,200);this.addWindowListener(newWindowAdapter()publicvoidwindowClosing(WindowEvente)dispose(););publicifvoidactionPerformed(ActionEvente)(e.getSource()=jb1)改正職工信息的sql語(yǔ)句,paras為待注入的值Stringsql=updateEmployinfoset+E

35、name=?,Sex=?,Birthday=?,DeptNo=?,Ejob=?,Sal=?whereEmpno=?;Stringparas=jtf2.getText(),jtf3.getText(),jtf4.getText(),jtf5.getText(),jtf6.getText(),jtf7.getText(),jtf1.getText();EmployModeltemp=newEmployModel();/if假如改正語(yǔ)句運(yùn)轉(zhuǎn)成功則彈出“改正成功”對(duì)話框(temp.updEmploy(sql,paras)JOptionPane.showMessageDialog(this,改正成功);

36、thiselse.dispose();if(e.getSource()=jb2)封閉對(duì)話框this.dispose();6)DelEmploy/*刪除職工*/packagecom.Manager;importjavax.swing.*;importjava.awt.*;importpublicclassDelEmployextendsPanelimplementsActionListenerJTablejt;JScrollPanejsp;JButtonjb1,jb2;JPaneljp1,jp2;JLabeljl1;EmployModelem;publicDelEmploy()北部jl1=new

37、JLabel(刪除職工,JLabel.CENTER);jl1.setFont(newFont(黑體,Font.BOLD,30);jp2=newJPanel();jp2.add(jl1);中部em=newEmployModel();Stringparas=1;em.queryEmploy(select*fromEmployinfowhere1=?jt=newJTable(em);jsp=newJScrollPane(jt);,paras);南部jp1=newJPanel();jb1=newJButton(刪除);jb2=newJButton(撤消);jb1.addActionListener(t

38、his);jp1.add(jb1);jp1.add(jb2);this.setLayout(newBorderLayout();this.add(jp2,BorderLayout.NORTH);this.add(jsp,BorderLayout.CENTER);this.add(jp1,BorderLayout.SOUTH);publicifvoidactionPerformed(ActionEvente)(e.getSource()=jb1)返回用戶點(diǎn)中的行introwNum=thisif(rowNum=-1).jt.getSelectedRow();JOptionPane.showMess

39、ageDialog(this,請(qǐng)選擇一行);return;獲取學(xué)生編號(hào)StringEmpno=(String)em.getValueAt(rowNum,0);刪除記錄的sql語(yǔ)句Stringsql=deletefromEmployinfowhereEmpno=?Stringparas=Empno;EmployModeltemp=newEmployModel();temp.updEmploy(sql,paras);刪除職工成功后,更新職工表em=newEmployModel();Stringparas1=em.queryEmploy(1;select*fromEmployinfowhere1=?

40、,paras1);jt.setModel(em);7)AllEmploy/*遍歷全部職工*/packagecom.Manager;importjava.awt.*;importjavax.swing.*;publicclassAllEmployEmployModelem;JTablejt;extendsPanelJScrollPanejsp;JLabeljl1;JPaneljp;publicAllEmploy()北部jp=newJPanel();jl1=newJLabel(全體職工,JLabel.CENTER);jl1.setFont(newFont(黑體,Font.BOLD,30);jp.a

41、dd(jl1);中部em=newEmployModel();Stringparas=1;em.queryEmploy(select*fromEmployinfowhere1=?,paras);jt=newJTable(em);jsp=newJScrollPane(jt);this.setLayout(newBorderLayout();this.add(jp,BorderLayout.NORTH);this.add(jsp,BorderLayout.CENTER);8)Examine/*職工查核界面*/packagecom.Manager;importjava.awt.*;importimpo

42、rtimport;importjava.sql.*;importjavax.swing.*;publicclassExamineextendsJLabeljl1,jl2,jl3,jl4JTablejt;JScrollPanejsp;JTextFieldjtf1,jtf2;Choicech;JButtonjb1,jb2;JPaneljp1,jp2,jp3,jp4AppraisalModelam;SqlHelpersqh;publicExamine()Panel;implementsActionListener北部為標(biāo)題文字jp4=newJPanel();jl1=newJLabel(職工查核,JL

43、abel.CENTER);jl1.setFont(newFont(黑體,Font.BOLD,30);jp4.add(jl1);中部am=newAppraisalModel();am.queryAppraisal(selectE.Empno,E.Ename,A.Consequence,A.RegDatefrom+EmployinfoasE,AppraisalasAwhereE.Empno=A.Empno);jt=newJTable(am);jsp=newJScrollPane(jt);/監(jiān)聽jtable點(diǎn)擊表格時(shí)獲取點(diǎn)擊的行數(shù)并經(jīng)過(guò)鼠標(biāo)點(diǎn)擊事件給jtf1,jtf2賦值jt.addMouseLis

44、tener(newMouseAdapter()publicvoidmouseClicked(MouseEvente)introwNum=jt.getSelectedRow();jtf1.setText(String)am.getValueAt(rowNum,0);jtf2.setText(String)am.getValueAt(rowNum,1););jl2=newJLabel(工號(hào):);jl3=newJLabel(姓名:);jl4=newJLabel(查核);jtf1=newJTextField(10);jtf2=newJTextField(10);jtf1.setEditable(fal

45、se);jtf2.setEditable(false);實(shí)例單項(xiàng)選擇框組件,并賦值ch=newChoice();ch.add(未查核);ch.add(不合格);ch.add(合格);ch.add(優(yōu)異);jp1=newJPanel();jp1.add(jl2);jp1.add(jtf1);jp1.add(jl3);jp1.add(jtf2);jp1.add(jl4);jp1.add(ch);jp2=newJPanel(newBorderLayout();jp2.add(jsp,BorderLayout.CENTER);jp2.add(jp1,BorderLayout.SOUTH);南部jb1=

46、newJButton(確認(rèn));jb2=newJButton(刷新);jp3=newJPanel();jb1.addActionListener(this);jb2.addActionListener(this);jp3.add(jb1);jp3.add(jb2);this.setLayout(newBorderLayout();this.add(jp4,BorderLayout.NORTH);this.add(jp2,BorderLayout.CENTER);this.add(jp3,BorderLayout.SOUTH);publicifvoidactionPerformed(ActionE

47、vente)(e.getSource()=jb1)StringEmpno=jtf1.getText();StringEname=jtf2.getText();StringConsequence=ch.getSelectedItem();先獲取上一次查核記錄Stringsql=selectConsequencefromAppraisalwhereEmpno=?Stringparas=Empno;StringOldInfo=;trysqh=newSqlHelper();ResultSetrs=sqh.queryExecute(sql,paras);rs.next();OldInfo=rs.getS

48、tring(1);catch(Exceptione1)e1.printStackTrace();finallysqh.close();/對(duì)查核表進(jìn)行改正改正查核記錄的sql語(yǔ)句Stringsql1=updateAppraisalsetConsequence=?whereEmpno=?Stringparas1=Consequence,Empno;AppraisalModeltemp=newAppraisalModel();if(temp.updAppraisal(sql1,paras1)JOptionPane.showMessageDialog(this,查核成功);/再把上一次查核記錄以及本次

49、操作記錄插入到historyStringsql2=insertintoHistory(Empno,Ename,OldInfo,NewInfo)values(?,?,?,?);表中AppraisalModeltemp1=newAppraisalModel();temp1.updAppraisal(sql2,paras2);elseif(e.getSource()=jb2)/刷新職工查核表am=newAppraisalModel();Stringparas3=am.queryAppraisal(1;selectE.Empno,E.Ename,A.Consequence,A.RegDatefromt

50、his.jt+EmployinfoasE,AppraisalasAwhereE.Empno=A.Empno.setModel(am););9)History/*歷史記錄界面*/packagecom.Manager;importjava.awt.*;importimportjavax.swing.*;publicclassHistoryextendsPanelimplementsActionListenerAppraisalModelam;JTablejt;JScrollPanejsp;JLabeljl1;JPaneljp,jp1,jp2;JButtonjb1,jb2;publicHistory

51、()北部jp=newJPanel();jl1=newJLabel(職工查核歷史記錄,JLabel.CENTER);jl1.setFont(newFont(黑體,Font.BOLD,30);jp.add(jl1);中部am=newAppraisalModel();Stringparas=1;am.queryHistory(select*fromHistorywhere1=?jt=newJTable(am);jsp=newJScrollPane(jt);,paras);南部jp2=newJPanel();jb1=newJButton(清空);jb2=newJButton(刷新);jb1.addAc

52、tionListener(this);jb2.addActionListener(this);jp2.add(jb1);jp2.add(jb2);this.setLayout(newBorderLayout();thisthisthis.add(.add(.add(jpjspjp2,BorderLayout.,BorderLayout.,BorderLayout.NORTH);CENTER);SOUTH);publicifvoidactionPerformed(ActionEvente)(e.getSource()=jb1)/刪除歷史記錄并更新表am=newAppraisalModel();S

53、tringparas=1;am.updAppraisal(deleteHistorywhere1=?am.queryHistory(select*fromHistorywhere1=?this.jt.setModel(am);elseif(e.getSource()=jb2),paras);,paras);刷新表格am=newAppraisalModel();Stringparas=1;am.queryHistory(select*fromHistorywhere1=?this.jt.setModel(am);,paras);10)EmployModel/*重寫TableModel*/pack

54、agecom.Manager;importimportjava.sql.*;importjava.util.*;publicclassEmployModelextendsVectorrowData,columnNames;AbstractTableModel實(shí)現(xiàn)查問(wèn)publicvoidqueryEmploy(Stringsql,Stringparas)SqlHelpersqh=null;/用columnNames寄存表的列名columnNames=newVector();columnNames.add(工號(hào));columnNames.add(姓名);columnNames.add(性別);co

55、lumnNames.add(出生年代);columnNames.add(部門);columnNames.add(職位);columnNames.add(薪資);/rowData寄存表格的各行數(shù)據(jù)rowData=newVector();trysqh=newSqlHelper();ResultSetrs=sqh.queryExecute(sql,paras);while(rs.next()Vectorhang=newVector();hang.add(rs.getString(1);hang.add(rs.getString(2);hang.add(rs.getString(3);hang.add

56、(rs.getString(4);hang.add(rs.getString(5);hang.add(rs.getString(6);hang.add(rs.getString(7);rowData.add(hang);catch(Exceptione)e.printStackTrace();finallysqh.close();實(shí)現(xiàn)表格增改正功能publicbooleanupdEmploy(Stringsql,Stringparas)SqlHelpersqh=newSqlHelper();returnsqh.updExecute(sql,paras);publicintgetRowCount

57、()returnthis.rowData.size();publicStringgetColumnName(intcolumn)return(String)this.columnNames.get(column);publicintgetColumnCount()returnthis.columnNames.size();publicObjectgetValueAt(introw,intcolumn)獲取某一個(gè)單元格的數(shù)值return(Vector)this.rowData.get(row).get(column);11)AppraisalModel/*重寫TableModel為查核類的tab

58、le模板*/packagecom.Manager;importimportjava.sql.*;importjava.util.*;publicclassAppraisalModelextendsVectorrowData,columnNames;AbstractTableModel實(shí)現(xiàn)查問(wèn)publicvoidqueryAppraisal(Stringsql)SqlHelpersqh=null;用columnNames寄存表的列名columnNames=newVector();columnNames.add(工號(hào));columnNames.add(姓名);columnNames.add(上一次

59、查核);columnNames.add(查核時(shí)間);/rowData寄存表格的各行數(shù)據(jù)rowData=newVector();trysqh=newSqlHelper();ResultSetrs=sqh.queryExecute(sql);while(rs.next()Vectorhang=newVector();hang.add(rs.getString(1);hang.add(rs.getString(2);hang.add(rs.getString(3);hang.add(rs.getString(4);rowData.add(hang);catch(Exceptione)e.printStackTrace();finallysqh.close();查問(wèn)職工查核歷史記錄方法publicvoidqueryHistory(Stringsql,Stringparas)SqlHelpersqh=null;用columnNames寄存表的列名columnNames=newVector();columnNames.add(流水號(hào));columnNa

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論