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

下載本文檔

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

文檔簡(jiǎn)介

1、課程設(shè)計(jì)(論文)任務(wù)書(shū) 學(xué)院 *學(xué)院 專(zhuān)業(yè) * 學(xué)生姓名 班級(jí)學(xué)號(hào) * 課程名稱(chēng) Java語(yǔ)言程序設(shè)計(jì) 課程設(shè)計(jì)(論文)題目 員工信息管理系統(tǒng) 設(shè)計(jì)目的: 1)復(fù)習(xí)、鞏固Java語(yǔ)言的基礎(chǔ)知識(shí), 2 )課程設(shè)計(jì)為學(xué)生提供了一個(gè)既動(dòng)手又 理論知識(shí)和實(shí)際有機(jī)的結(jié)合起來(lái), 鍛煉 學(xué)生適應(yīng)實(shí)際,實(shí)踐編程的能力; 3)培養(yǎng)學(xué)生在項(xiàng)目開(kāi)發(fā)中的團(tuán)隊(duì)合作精 設(shè)計(jì)要求(技術(shù)參數(shù)): 1)對(duì)系統(tǒng)進(jìn)行需求分析及可行性分析 系統(tǒng)實(shí)現(xiàn)的目的,項(xiàng)目開(kāi)發(fā)的背景, 開(kāi)發(fā)環(huán)境,預(yù)期使用的用戶(hù)等。 2)對(duì)系統(tǒng)進(jìn)行總體設(shè)計(jì) 分析系統(tǒng)的功能結(jié)構(gòu)模塊,并給出系 求,實(shí)現(xiàn)相應(yīng)功能;可以加以其他功 3)詳細(xì)設(shè)計(jì) 設(shè)計(jì)所需的數(shù)據(jù)表,給出所需

2、數(shù)據(jù)表 字段說(shuō)明,約束條件。編碼實(shí)現(xiàn)每個(gè)- 計(jì)劃與進(jìn)度安排: 周一全天:設(shè)計(jì)解決問(wèn)題方法 周 周一全天:調(diào)試程序周 進(jìn)一步加深對(duì) Java語(yǔ)言的理解和掌握; 動(dòng)腦,獨(dú)立實(shí)踐的機(jī)會(huì),將課本上的 K學(xué)生的分析解決實(shí)際問(wèn)題的能力。 提高 神、創(chuàng)新意識(shí)及能力。 系統(tǒng)要達(dá)到的目標(biāo),開(kāi)發(fā)系統(tǒng)所用的 統(tǒng)的功能結(jié)構(gòu)圖,設(shè)計(jì)要符合課題要 能或修飾,使程序更加完善、合理。 的字段名稱(chēng),數(shù)據(jù)類(lèi)型,字符長(zhǎng)度, 子功能模塊,并進(jìn)行測(cè)試。 四14節(jié):調(diào)試程序 四14節(jié):完成論文,答辯 成績(jī): 指導(dǎo)教師(簽字): 年月日 專(zhuān)業(yè)負(fù)責(zé)人(簽字): 年月日 主管院長(zhǎng)(簽字): 年月日 摘要 Java 語(yǔ)言是當(dāng)前最為流行的程序設(shè)計(jì)

3、語(yǔ)言之一,諸多優(yōu)秀的的特性使其成 為被業(yè)界廣泛認(rèn)可和采用的工具。 隨著目前公司規(guī)模的漸漸擴(kuò)大, 員工管理將成為意見(jiàn)不得不總是的問(wèn)題。 有 些公司人員流動(dòng)較大,而且人數(shù)動(dòng)輒上百人, ,若采用傳統(tǒng)的方式進(jìn)行管理,不 僅易出錯(cuò)更是一件令人痛疼的事。 隨著計(jì)算機(jī)的誕生, 在此領(lǐng)域產(chǎn)生眾多的信息 管理系統(tǒng)來(lái)管理信息, 不僅信息處理方便, 而且簡(jiǎn)單強(qiáng)大。 本系統(tǒng)正事其中的一 項(xiàng),針對(duì)員工信息管理, 方便公司對(duì)員工的信息進(jìn)行處理, 極大減少了人事管理 的工作量。另一方面,本系統(tǒng)中所涉及到圖形用戶(hù)界面設(shè)計(jì)是我們學(xué)習(xí)程序設(shè)計(jì) 這門(mén)課的難點(diǎn)兼重點(diǎn), 通過(guò)審計(jì)本系統(tǒng)不僅鞏固了我們的基礎(chǔ), 以及程序設(shè)計(jì)能 力,還鍛煉

4、了我們對(duì)程序設(shè)計(jì)的流程及大體上的把握不僅如此,在設(shè)計(jì)過(guò)程中, 我們的調(diào)試能力也得到增強(qiáng)。使我們對(duì)設(shè)計(jì)“大程序”有了經(jīng)驗(yàn)。目前,無(wú)論是 機(jī)關(guān)、事業(yè)單位、還是企業(yè)單位, 員工管理對(duì)于組織生存與長(zhǎng)遠(yuǎn)發(fā)展所具備的重 要性都已經(jīng)有了明確的認(rèn)識(shí),而員工管理水平的提升不僅需要高素質(zhì)的管理人 員,而且也需要信息化工具進(jìn)行輔助 . 在現(xiàn)代化的企業(yè)管理中,員工管理系統(tǒng)有 著十分重要的作用 ! 關(guān)鍵詞: 文件和流 界面設(shè)計(jì) GUI 異常處理 Hashtable 類(lèi) 目錄 一、設(shè)計(jì)目的 錯(cuò)誤!未定義書(shū)簽 、設(shè)計(jì)問(wèn)題 錯(cuò)誤!未定義書(shū)簽 四、詳細(xì)設(shè)計(jì) 錯(cuò)誤!未定義書(shū)簽。 錯(cuò)誤!未定義書(shū)簽 錯(cuò)誤!未定義書(shū)簽 錯(cuò)誤!未定義書(shū)

5、簽 錯(cuò)誤!未定義書(shū)簽 錯(cuò)誤!未定義書(shū)簽 錯(cuò)誤!未定義書(shū)簽 錯(cuò)誤!未定義書(shū)簽 錯(cuò)誤!未定義書(shū)簽。 六、參考文獻(xiàn) 錯(cuò)誤!未定義書(shū)簽 2.1 課設(shè)問(wèn)題 錯(cuò)誤!未定義書(shū)簽。 2.2 設(shè)計(jì)思路 錯(cuò)誤!未定義書(shū)簽。 三、概要設(shè)計(jì) 6 3.1 程序功能模塊設(shè)計(jì)的實(shí)現(xiàn) 錯(cuò)誤!未定義書(shū)簽。 3.2 系統(tǒng)總體結(jié)構(gòu) 錯(cuò)誤!未定義書(shū)簽。 3.3 員工信息面板功能的實(shí)現(xiàn) 錯(cuò)誤!未定義書(shū)簽。 3.4 員工界面功能模塊設(shè)計(jì)的實(shí)現(xiàn) 錯(cuò)誤!未定義書(shū)簽。 4.1 定義程序變量 4.2 程序面板設(shè)計(jì) 4.3 錄入員工信息 4.4 查詢(xún)員工信息 4.5 修改員工信息 4.6 刪除員工信息 4.7 顯示員工信息 五、設(shè)計(jì)總結(jié) 、設(shè)計(jì)目

6、的 隨著現(xiàn)代社會(huì)的快速發(fā)展, 我們已進(jìn)入信息化時(shí)代, 管理系統(tǒng)在人們的生活 中的應(yīng)用越來(lái)越廣泛,它已深入到我們工作、學(xué)習(xí)、生活的各個(gè)方面。為了適應(yīng) 時(shí)代的發(fā)展,本次課程設(shè)計(jì)的主要任務(wù)是設(shè)計(jì)一個(gè)學(xué)生員工系統(tǒng)并完成一些基本 操作。其目的是: (1)提高員工信息管理的運(yùn)作效率,通過(guò)對(duì)雇員全面的信息采集和處理; (2)運(yùn)用已學(xué)的 java 知識(shí)編一些簡(jiǎn)單使用的程序,使我們初步具備綜合運(yùn)用所 學(xué) Java 語(yǔ)言基礎(chǔ)知識(shí),面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想、方法與技術(shù); (3)由計(jì)算機(jī)來(lái)代替人工執(zhí)行一系列諸如增加新員工、刪除、修改、查詢(xún)、顯 示等操作。這樣就使管理人員輕松快捷的完成員工信息的管理工作。 二、設(shè)計(jì)問(wèn)

7、題 2.1 課設(shè)問(wèn)題: 員工管理系統(tǒng) 要求完成: ( 1) 完成員工的添加、刪除、查詢(xún)、修改功能 ( 2) 使用界面操作 ( 3) 使用文件完成 2.2 設(shè)計(jì)思路:首先設(shè)計(jì)面板,然后往面板里添加組件,點(diǎn)擊各個(gè)組件來(lái)實(shí)現(xiàn) 要求的對(duì)員工信息的添加、刪除、查詢(xún)、修改功能。 三、概要設(shè)計(jì) 3.1 程序功能模塊設(shè)計(jì)的實(shí)現(xiàn) 本段代碼中主要的類(lèi)有 EmployeeManager和ActionEvent,設(shè)置了監(jiān)聽(tīng)接口 由 ActionEvent 類(lèi)來(lái)實(shí)現(xiàn),并且用 if 語(yǔ)句來(lái)為變量服務(wù)。后面設(shè)置了一個(gè)異常處 理,使用try和catch來(lái)捕獲異常。使用GUI技術(shù)實(shí)現(xiàn)員工的圖形界面。 3.2 系統(tǒng)總體結(jié)構(gòu) 系統(tǒng)

8、總體結(jié)構(gòu) 3.3 員工信息面板功能的實(shí)現(xiàn) 首先構(gòu)造兩個(gè)面板(JPanel ),分別為界面以及顯示,并將其加入到容器中 主界面 顯示界面 3.4 錄入:提示員工信息是否被錄入,選擇是(丫),則員工信息錄入到文件中 查詢(xún):在主界面中輸入員工號(hào),點(diǎn)擊查找,若員工信息不存在則顯示如圖 若文本文件中存在所要查找的員工信息(例如工號(hào) 0801),則在主界面中顯示該 員工信息(員工號(hào)、姓名和性別) 性別:男O女 刪除:在主界面中輸入員工號(hào),點(diǎn)擊刪除按鈕,彈出對(duì)話(huà)框,選擇是(丫)程序?qū)?刪除詞員工的所有信息。 四、詳細(xì)設(shè)計(jì) 4.1定義程序變量 自定義 employee 類(lèi),其 中定義 number,name,

9、sex 三個(gè)變量,分別包含 setNumber、getNumber、setName、getName setSex 、getSex 方法。 class employeeimpleme ntsjava.io.Serializable Stri ng number , name, sex ; public employee(); public void setNumber(Stri ng nu mber) this . number =number; public Stri ng getNumber()return number ; public void setName(Stri ng n ame

10、) this . name=name; public Stri ng getName()return n ame; public void setSex(Stri ng sex) this . sex =sex; Public String getSex ()return sex ; 4.2 程序面板設(shè)計(jì) 定義 EmployeeManager類(lèi)繼承 JFrame,使用 JLabel、JTextField、JRadioBUtton、 Butt on Group、JButton等類(lèi)構(gòu)造各組件,使用。使用Hashtable類(lèi)創(chuàng)建散列表 對(duì)象“員工表”存放employee對(duì)象,每個(gè)employee對(duì)象

11、用該對(duì)象的學(xué)號(hào)作為關(guān) 鍵字。使用exists()方法判斷文本文件是否存在。若存在則進(jìn)行數(shù)據(jù)的寫(xiě)入操 作。使用addActionListener() 方法對(duì)JButton進(jìn)行注冊(cè)監(jiān)聽(tīng)。GridLayout布局 管理器對(duì)面板進(jìn)行設(shè)計(jì)如下所示。 public class EmployeeMa nagerexte ndsJFrame JLabel lb =new JLabel(錄入請(qǐng)先輸入記錄,查詢(xún)、刪除請(qǐng)先輸入工 號(hào),修改是對(duì)查詢(xún)+ 內(nèi)容改后的保存!); JRadioButton男, 女 ; ButtonGroupgroup =null ; JButton錄入, 查詢(xún), 刪除 , 修改, 顯示; J

12、Panel a, b, c, d, f ; employee員工 =null ; Hashtable 員工表 =null File file =null FileInputStream ObjectInputStream FileOutputStream ObjectOutputStream public employee inOne =null ; inTwo =null ; outOne =null ; outTwo =null 工人; public EmployeeManager() super ( 沈陽(yáng)理工員工基本信息管理系統(tǒng) ); 工號(hào) =new JTextField(10); 姓名

13、 =new JTextField(10); group =new ButtonGroup(); 男 =new JRadioButton( 女 =new JRadioButton( group .add( 男); group .add( 女); 錄入 =new JButton( 查詢(xún) =new JButton( 刪除 =new JButton( 修改 =new JButton( 顯示 =new JButton( 男 ,true ); 女 , false ); 錄入 ); 查詢(xún) ); 刪除 ); 修改 ); 顯示 ); 錄入 .addActionListener( new LRAct(); 查詢(xún)

14、.addActionListener( new CXAct(); 修改 .addActionListener( new XGAct(); 刪除 .addActionListener( new SCAct(); 顯示 .addActionListener( new XSAct(); 修改 .setEnabled( false ); a=new JPanel(); a.add( new JLabel( 工號(hào) : ,JLabel. CENTER); a.add( 工號(hào) ); b=new JPanel(); b.add( new JLabel( 姓名 : ,JLabel. CENTER); b.add

15、( 姓名 ); c=new JPanel(); c .add( new JLabel( 性別 : ,JLabel. CENTER); c .add( 男); c .add( 女); d=new JPanel(); d.setLayout( new GridLayout(6,1); d.add( a); d.add( b); d.add( c); f =new JPanel(); f .add( 錄入 ); f .add( 查詢(xún) ); f .add( 修改 ); f .add( 刪除 ); f .add( 顯示 ); file =new File(員工信息.txt); Hashtable員工表=

16、new Hashtable(); if (! file .exists() try FileOutputStream out=new FileOutputStream( file ); ObjectOutputStream objectOut=new ObjectOutputStream(out); objectOut.writeObject(員工表); objectOut.close(); out.close(); catch (IOException e) Container con=getC onten tPa ne(); con. setLayout( new BorderLayout

17、(); NORTH; CENTER); SOUTH; EXIT_ON_CLOSE); con.add(lb, BorderLayout. con. add(d,BorderLayout. con.add(f ,BorderLayout. setDefaultCloseOperati on( setBou nds(200,200,600,300); setVisible(true ); 4.3 錄入員工信息 以員工的員工號(hào)作為關(guān)鍵字,調(diào)用 ObjectI nputStream( new FileInputStream ()中的readObject()方法讀取文本文件中的數(shù)據(jù)。使用員工 表.con

18、tainsKey(number)對(duì)關(guān)鍵字進(jìn)行檢測(cè),如果數(shù)據(jù)中包含該員工號(hào),則彈出 對(duì)話(huà)框提示該員工信息已存在,請(qǐng)到修改頁(yè)面進(jìn)行信息的修改,如果數(shù)據(jù)中不包 含該關(guān)鍵字,則彈出確認(rèn)對(duì)話(huà)框,點(diǎn)擊確定,程序調(diào)用put()方法寫(xiě)入信息到散 列表中。調(diào)用writeObject()方法將散列表寫(xiě)入文本文件中。如果程序在獲取員 工號(hào)時(shí)為空時(shí),提示用戶(hù)輸入員工號(hào)。用try,catch對(duì)異常進(jìn)行處理。以下為 具體代碼: class LRActimpleme ntsActio nListe ner public void action Performed(Acti on Eve nt e) 修改.setEnable

19、d(false ); /功能尚未實(shí)現(xiàn)if (number.length()0) try inTwo =new ObjectInputStream( new FileInputStream( file ); 員工表 =(Hashtable) inTwo .readObject(); inOne .close(); inTwo .close(); catch (Exception ee)System. out .println( 創(chuàng)建表 出現(xiàn)問(wèn)題! ); if ( 員工表 .containsKey(number) String warning= 該員工信息已存在,請(qǐng)到修改頁(yè)面修 II 小 II 警

20、告 改!; JOptionPane. showMessageDialog ( null ,warning, JOptionPane. WARNING_MESSAG)E; else String m= 確定該員工被錄入? ; int ok=JOptionPane. showConfirmDialog ( null ,m, 確認(rèn) , JOptionPane. YES_NO_OPTION,JOptionPane. INFORMATION_MESSAGE ); if (ok=JOptionPane. YES_OPTION) String name=姓名 .getText(); String sex=

21、null ; if (男.isSelected()sex=男.getText(); else sex= 女.getText(); 員工 =new employee(); 員工.setNumber( nu mber); 員工.setName( name); 員工 .setSex(sex); try outOne =new FileOutputStream( file ); outTwo =new ObjectOutputStream( outOne ); 員工表 .put(number,員工); outTwo .writeObject( 員工表 ); outTwo .close(); outOn

22、e .close(); catch (Exception ee)System. out .println( 輸出出現(xiàn)問(wèn)題! ); 工號(hào).setText(n ull ); 姓名.setText(null ); else String warning=必須輸入工號(hào)! ; JOptionPane.showMessageDialog ( null ,warning, 警告 ,JOptionPane.WARNING_MESSAG)E; 4.4 查詢(xún)員工信息 構(gòu)造CXAct類(lèi)實(shí)現(xiàn)ActionListener接口,對(duì)事件監(jiān)聽(tīng)。在該類(lèi)中以員工的員工 號(hào) 作 為 關(guān) 鍵 字 , 調(diào) 用 ObjectInputS

23、tream(new FileInputStream () 中 的 readObject() 方法讀取文本文件中的數(shù)據(jù)。使用員工表 .containsKey(number) 對(duì)關(guān)鍵字進(jìn)行檢測(cè), 如果文本框中的員工號(hào)和文本文件中的數(shù)據(jù)相同, 程序調(diào)用 setText() 方法把散列表中的員工信息顯示在文本框中,如果文本框中的員工號(hào) 和文本文件中的數(shù)據(jù)不相同, 則程序調(diào)用 JOptionPane.showMessageDialog() 方 法提示該員工信息不存在。 如果程序獲取到員工號(hào)文本框中的內(nèi)容為空, 則提示 用戶(hù)輸入員工號(hào)。以下程序?qū)崿F(xiàn)為代碼: class CXAct implements A

24、ctionListener public void actionPerformed(ActionEvent e) String number= ; number= 工號(hào) .getText(); if (number.length()0) try inOne =new FileInputStream( file ); inTwo =new ObjectInputStream( inOne ); 員工表 =(Hashtable) inTwo .readObject(); inOne .close(); inTwo .close(); catch (Exception ee)System. out

25、.println( 員工表 有問(wèn)題! ); if ( 員工表 .containsKey(number) 修改 .setEnabled(true ); employee stu=(employee)員工表 .get(number); 姓名.setText(stu.getName(); if (stu.getSex().equals( 男 )男.setSelected( true ); else 女.setSelected( true ); else 修改 .setEnabled( false ); String warning= 該員工不存在! II JOptionPane. showMessa

26、geDialog ( null ,warning, 警告 ,JOptionPane.WARNING_MESSAG)E; else 修改 .setEnabled(false ); String warning= 必須輸入工號(hào)! ; JOptionPane. showMessageDialog ( null ,warning, 警告 ,JOptionPane.WARNING_MESSAG)E; class XGAct implements ActionListener public void actionPerformed(ActionEvent e) String number=工號(hào) .getT

27、ext(); String name= 姓名 .getText(); String sex= null ; if (男.isSelected()sex=男.getText(); else sex= 女.getText(); employee員工 =new employee(); 員工.setNumber( nu mber); 員工.setName( name); 員工 .setSex(sex); try outOne =new FileOutputStream( file ); outTwo =new ObjectOutputStream( outOne ); 員工表.put(number,員

28、工); outTwo .writeObject( 員工表); outTwo .close(); outOne .close(); 工號(hào) .setText(null ); 姓名 .setText(null ); catch (Exception ee) System. out .println( 錄入修改出現(xiàn)異常 ! ); 修改 .setEnabled(false ); class SCAct implements ActionListener public void actionPerformed(ActionEvent e) 修改 .setEnabled( false ); String n

29、umber= 工號(hào) .getText(); if (number.length()0) try inTwo =new ObjectInputStream( new FileInputStream( file ); 員工表 =(Hashtable) inTwo .readObject(); inOne .close(); inTwo .close(); catch (Exception ee) if ( 員工表 .containsKey(number) employee stu=(employee)員工表 .get(number); 姓名.setText(stu.getName(); if (s

30、tu.getSex().equals( 男 )男.setSelected( true ); else 女.setSelected( true ); String m= 確定要?jiǎng)h除該員工的記錄嗎? ; int ok=JOptionPane. showConfirmDialog ( null ,m, 確認(rèn), JOptionPane. YES_NO_OPTION,JOptionPane. QUESTION_MESSAGE); if (ok=JOptionPane. YES_OPTION) 員工表 .remove(number); try file ); outOne ); outOne =new F

31、ileOutputStream( outTwo =new ObjectOutputStream( outTwo .writeObject( 員工表 ); outTwo .close(); outOne .close(); 工號(hào) .setText( null ); 姓名 .setText( null ); catch (Exception ee)System. out .println(ee); else if (ok=JOptionPane. NO_OPTION) 工號(hào) .setText( null ); 姓名 .setText( null ); String warning= else el

32、se String warning= 必須輸入工號(hào)! II JOptionPane. showMessageDialog ( null ,warning, 警告 ,JOptionPane. WARNING_MESSAG)E; 該號(hào)不存在! JOptionPane.showMessageDialog( null ,warning, 警告,JOptionPane.WARNING_MESSAGE 4.5 修改員工信息 和添加員工信息方法類(lèi)似,定義number、name sex三個(gè)局部變量,并使用 getText()方法初始化變量。調(diào)用 isSelected()方法設(shè)置單選按鈕。創(chuàng)建 employee

33、類(lèi)型的“員工”局部變量,調(diào)用Hastable類(lèi)中的put()方法將要修改的 員工信息寫(xiě)入到散列表“員工表” 中。調(diào)用ObjectInputStream(new File In putStream () 中的writeObject()把散列表中的數(shù)據(jù)信息寫(xiě)入到文本文 件中。使用trycatch來(lái)捕獲異常,并進(jìn)行處理。以下是程序?qū)崿F(xiàn)修改功能的 代碼: class XGAct impleme ntsActio nListe ner public void action Performed(Acti on Eve nt e) Stri ng nu mber=工號(hào).getText(); Stri ng

34、n ame=姓名.getText(); Stri ng sex=n ull if (男.isSelected()sex=男.getText(); else sex= 女.getText(); employee員工 =new employee(); 員工.setNumber( nu mber); 員工 .setName( name); 員工 .setSex(sex); try file ); out One ); out One =new FileOutputStream( outTwo =new ObjectOutputStream( 員工表.put(number,員工); outTwo .w

35、riteObject( 員工表); outTwo .close(); outOne .close(); 工號(hào) .setText( null ); 姓名 .setText( null ); catch (Exception ee) System. out .println( 錄入修改出現(xiàn)異常 ! ); 修改 .setEnabled(false ); 4.6 刪除員工信息 構(gòu)造 SCAct 類(lèi)實(shí)現(xiàn) ActionListener 接口,在該類(lèi)中也是以員工信息中的員 工號(hào)作為關(guān)鍵字,調(diào)用ObjectInputStream(new FileInputStream ()中的 readObject() 方法

36、讀取文本文件中的數(shù)據(jù)。使用員工表 .containsKey(number) 對(duì)關(guān)鍵字進(jìn)行檢測(cè), 如果文本框中的員工號(hào)和文本文件中的數(shù)據(jù)相同, 程序調(diào)用 remove() 方法把散列表中的該項(xiàng)員工的信息刪除, 如果文本框中的員工號(hào)和文本 文件中的數(shù)據(jù)不相同, 則程序調(diào)用 JOptionPane.showMessageDialog() 方法提示 該員工信息不存在。 如果程序獲取到員工號(hào)文本框中的內(nèi)容為空, 則提示用戶(hù)輸 入員工號(hào)。以下程序?qū)崿F(xiàn)為代碼: class SCAct implements ActionListener public void actionPerformed(ActionEv

37、ent e) 修改 .setEnabled( false ); String number= 工號(hào) .getText(); if (number.length()0) try inTwo =new ObjectInputStream( new FileInputStream( file ); 員工表 =(Hashtable) inTwo .readObject(); inOne .close(); inTwo .close(); catch (Exception ee) if ( 員工表 .containsKey(number) employee stu=(employee)員工表 .get(

38、number); 姓名.setText(stu.getName(); if (stu.getSex().equals( 男 )男.setSelected( true ); else 女.setSelected( true ); String m= 確定要?jiǎng)h除該員工的記錄嗎? ; int ok=JOptionPane. showConfirmDialog ( null ,m, 確認(rèn), JOptionPane. YES_NO_OPTION,JOptionPane. QUESTION_MESSAGE); if (ok=JOptionPane. YES_OPTION) 員工表 .remove(numb

39、er); file ); outOne ); try outOne =new FileOutputStream( outTwo =new ObjectOutputStream( outTwo .writeObject( 員工表 ); outTwo .close(); outOne .close(); 工號(hào).setText( n ull ); 姓名 .setText( null ); catch (Exception ee)System. out .println(ee); else if (ok=JOptionPane. NO_OPTION) 工號(hào) .setText( null ); 姓名 .

40、setText( null ); JOptionPane. showMessageDialog ( null ,warning, else 警告 ,JOptionPane.WARNING_MESSAG)E; String warning= 必須輸入工號(hào)! ; JOptionPane. showMessageDialog ( null ,warning, 警告 ,JOptionPane.WARNING_MESSAG)E; else String warning= 該號(hào)不存在! 4.7 顯示員工信息 實(shí)現(xiàn) ActionListener 接口對(duì)構(gòu)造的 XSAct 類(lèi)用于接收操作事件的偵聽(tīng)器接 口。而

41、使用該類(lèi)創(chuàng)建的對(duì)象可使用組件的 addActionListener 方法向該組件注 冊(cè)。在發(fā)生操作事件時(shí), 調(diào)用該對(duì)象的 actionPerformed 方法。從而調(diào)用 SShow() 方法實(shí)現(xiàn)顯示員工信息的功能。 class XSAct implements ActionListener public void actionPerformed(ActionEvent e) new SShow( file ); 編寫(xiě)SShow類(lèi)繼承JDialog,定義 Hashtable 類(lèi)的“員工表”、JTextArea 類(lèi)的“顯示”和處理字符流的 FileInputStream 和 ObjectInput

42、Stream 類(lèi)型的 inOne與in Two,并對(duì)他們初始化。在 SShow()方法中使用JTextArea類(lèi)設(shè)置顯 示面板,調(diào)用 JScrollPane 方法管理視口、 可選的垂直和水平滾動(dòng)條以及可選的 行 和 列 標(biāo) 題 視 口 , 最 終 設(shè) 置 如 圖 所 示 的 顯 示 面 板 。 inTwo=new ObjectInputStream(new FileInputStream(file);員 工 表 =(Hashtable)inTwo.readObject(); inTwo.close()對(duì)文本文件的讀取,使用 isEmpty() 和 append() 方法判斷散列表中的內(nèi)容是否為

43、空并把信息顯示在JTextArea 文本 顯示區(qū)中。 實(shí)現(xiàn) Enumeration 接口的對(duì)象, 它生成一系列元素, 一次生成一個(gè)。 連續(xù)調(diào)用 nextElement 方法將返回一系 列的連續(xù)元素。使用“顯 示 .append(str) ” 代碼: 方法將這些元素追加到顯示區(qū)域中。以下為程序功能實(shí)現(xiàn)的 class SShow extends JDialog Hashtable 員工表= null ; JTextArea顯示 =null ; FileInputStream inOne =null ; ObjectInputStream inTwo =null ; File file =null ; public SShow(File file) super ( new JFrame(), 顯示對(duì)話(huà)框 ); this . file =file; 顯示 =new JTextArea(16,30); try inTwo =new ObjectInputS

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論