




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 個(gè)人信息助理1 需求分析1.1 系統(tǒng)概述現(xiàn)代信息社會(huì),人們越來越重視信息的交流與溝通,更加注重時(shí)間的有效利用。其中個(gè)人信息量也在迅速增加,因此隨個(gè)人信息的管理在日常工作和生活中成為一項(xiàng)必不可少的內(nèi)容,方便實(shí)用的個(gè)人信息管理工具對于提高事件利用效率具有重要意義。通過本文描述的個(gè)人信息助理工具可以對日常工作/生活瑣事、通訊簿和密碼等方面進(jìn)行更有效管理,為使用者在個(gè)人信息管理上帶來相當(dāng)?shù)谋憷?.2 系統(tǒng)運(yùn)行環(huán)境1.硬件環(huán)境l 處理器: Inter Pentium 166 MX 或更高l 內(nèi)存: 32M以上l 硬盤空間:1GB以上l 顯卡: SVGA顯示適配器2.軟件環(huán)境l 操作系統(tǒng): Windo
2、ws 98/ME/2000/XP1.3 功能需求描述個(gè)人信息助理工具的總體目標(biāo)是為使用者管理日益煩雜的個(gè)人日常信息提供一個(gè)方便有效的管理平臺(tái),提高日常生活和工作效率。具體需要實(shí)現(xiàn)以下一些基本功能:1.權(quán)限驗(yàn)證:檢驗(yàn)用戶合法身份,保障個(gè)人信息安全。2.口令維護(hù):用戶可以定期或者不定期的更改登錄口令,提高系統(tǒng)安全性。3.日常記事:記錄日常生活或者工作事件,以免遺忘,并提供記錄的查詢、瀏覽、修改和刪除等管理功能。4.通訊簿:記錄朋友、親屬、同事等等聯(lián)系人的通訊信息,以免遺忘,并提供記錄的查詢、瀏覽、修改和刪除等管理功能。5.密碼備忘:記錄日常使用的密碼信息,比如銀行帳號(hào)密碼、郵箱密碼、一些網(wǎng)站的登錄
3、密碼等等,以免遺忘,并提供記錄的查詢、瀏覽、修改和刪除等管理功能。6.數(shù)據(jù)庫管理:對現(xiàn)有的數(shù)據(jù)庫進(jìn)行管理,包括數(shù)據(jù)備份和恢復(fù),以方便用戶對數(shù)據(jù)庫的管理和維護(hù)工作,提高系統(tǒng)的數(shù)據(jù)安全性。2 總體設(shè)計(jì)2.1 開發(fā)與設(shè)計(jì)的總體思想 個(gè)人信息助理工具是為單個(gè)用戶提供管理功能,因此將本系統(tǒng)設(shè)計(jì)成一個(gè)相對封閉的單機(jī)運(yùn)行系統(tǒng)。作為大眾化的應(yīng)用軟件,其用戶界面往往是決定軟件質(zhì)量的首要條件,所以界面設(shè)計(jì)是開發(fā)與設(shè)計(jì)的重點(diǎn),應(yīng)充分貫徹簡單易用、美觀大方的基本原則。系統(tǒng)采用結(jié)構(gòu)化的設(shè)計(jì)方法進(jìn)行設(shè)計(jì),采用快速開發(fā)平臺(tái)JBuilder X進(jìn)行開發(fā)。2.2 系統(tǒng)模塊結(jié)構(gòu)圖 依據(jù)需求分析結(jié)果,個(gè)人信息助理可以分為四個(gè)模塊:
4、日常記事管理模塊、通訊簿管理模塊、密碼備忘模塊和系統(tǒng)維護(hù)模塊。系統(tǒng)模塊結(jié)構(gòu)如圖4-1所示。圖4-1 系統(tǒng)模塊結(jié)構(gòu)圖2.3 模塊設(shè)計(jì)1.日常記事管理模塊該模塊提供對個(gè)人日常生活、工作等等事件的備忘功能,主要是提供對日常事件信息的錄入、修改、刪除和瀏覽查詢功能。其中,記錄的信息主要包括事件的日期、事件類別、事件標(biāo)題和事件內(nèi)容等。日常記事管理模塊的模塊功能樹如圖4-2所示。圖4-2 日常記事管理模塊功能樹圖2.通訊簿管理模塊該模塊提供對聯(lián)系人通訊信息的管理功能,主要是提供對各類通訊信息的錄入、修改、刪除和查詢功能。通訊簿管理模塊的模塊功能樹如圖4-3所示。圖4-3 通訊簿模塊功能樹圖3.密碼備忘模塊
5、該模塊提供對個(gè)人各類密碼的管理功能,主要是提供對這些信息的錄入、修改、刪除和查詢功能。密碼備忘模塊功能樹如圖4-4所示。圖4-4 密碼備忘模塊功能樹圖4.系統(tǒng)維護(hù)模塊該模塊提供用戶權(quán)限驗(yàn)證、口令維護(hù)和數(shù)據(jù)庫維護(hù)功能,其中權(quán)限驗(yàn)證主要是通過檢查用戶輸入口令來判斷用戶是否具有登錄系統(tǒng)權(quán)限,口令維護(hù)提供修改用戶登錄口令功能,但需要用戶輸入舊口令,數(shù)據(jù)庫維護(hù)提供備份和恢復(fù)數(shù)據(jù)庫功能。系統(tǒng)維護(hù)模塊功能樹如圖4-5所示。圖4-5 系統(tǒng)維護(hù)模塊功能樹圖2.4 系統(tǒng)流程描述系統(tǒng)的主體處理流程如圖4-6所示。圖4-6 系統(tǒng)流程圖2.5 界面設(shè)計(jì)界面設(shè)計(jì)應(yīng)遵循簡潔美觀、方便易用的基本原則。1.系統(tǒng)主控平臺(tái)界面設(shè)計(jì)
6、系統(tǒng)主體界面使用簡單和直觀的布局設(shè)計(jì),通過工具欄方式為用戶提供各項(xiàng)系統(tǒng)功能。具體設(shè)計(jì)效果如圖4-7所示。圖4-7 系統(tǒng)主控平臺(tái)界面設(shè)計(jì)效果圖2.日常記事模塊界面設(shè)計(jì)具體設(shè)計(jì)效果如圖4-8所示。圖4-8 日常記事管理界面設(shè)計(jì)效果圖3.通訊簿模塊界面設(shè)計(jì)具體設(shè)計(jì)效果如圖4-9所示。圖4-9 通訊簿模塊界面設(shè)計(jì)效果圖4.密碼備忘模塊界面設(shè)計(jì)具體設(shè)計(jì)效果如圖4-10所示。圖4-10 密碼備忘模塊界面設(shè)計(jì)效果圖2.6 數(shù)據(jù)庫設(shè)計(jì)根據(jù)系統(tǒng)功能設(shè)計(jì)的要求以及功能模塊的劃分,對于本系統(tǒng)的數(shù)據(jù)庫,可以列出以下數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu): (1)名稱:用戶表表名稱標(biāo)識(shí):User數(shù)據(jù)來源:口令維護(hù)功能錄入表4-1 用戶表名稱
7、字段名稱類型主鍵非空標(biāo)識(shí)ID自動(dòng)編號(hào)YesYes用戶名Name文本NoYes用戶密碼Pass文本NoYes(2)名稱:日常記事記錄表表名稱標(biāo)識(shí):NotePad數(shù)據(jù)來源:日常記事模塊錄入表4-2 日常記事記錄表名稱字段名稱類型主鍵非空標(biāo)識(shí)ID自動(dòng)編號(hào)YesYes事件日期Date文本NoYes事件類別Sort文本NoNo標(biāo)題Caption文本NoYes備注Remarks備注NoNo(3)名稱:通訊簿記錄表表名稱標(biāo)識(shí):Addrbook數(shù)據(jù)來源:通訊簿模塊錄入表4-3 通訊簿記錄表名稱字段名稱類型主鍵非空標(biāo)識(shí)ID自動(dòng)編號(hào)YesYes姓名name文本NoYes性別sex文本NoNo類別type文本NoN
8、o住宅電話fphone文本NoNo辦公電話ophone文本NoNo移動(dòng)電話mphone文本NoNo電子郵件email文本NoNoOICQoicq文本NoNo單位company文本NoNo地址address文本NoNo備注Remarks備注NoNo(4)名稱:密碼備忘記錄表表名稱標(biāo)識(shí):Pwd數(shù)據(jù)來源:密碼備忘模塊錄入表4-4密碼備忘記錄表名稱字段名稱類型主鍵非空標(biāo)識(shí)ID自動(dòng)編號(hào)YesYes密碼名稱Name文本NoYes密碼Pwd文本NoNo備注Remarks備注NoNo3 詳細(xì)設(shè)計(jì)基于系統(tǒng)需求分析與系統(tǒng)總體設(shè)計(jì)的結(jié)論,本系統(tǒng)采用JBuilderX實(shí)現(xiàn)各模塊的功能,下面按照模塊的劃分來分別闡述系統(tǒng)
9、的詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)過程。3.1 系統(tǒng)主控平臺(tái)1.功能描述啟動(dòng)應(yīng)用程序,為用戶提供主體操作界面,對系統(tǒng)功能統(tǒng)一管理。2.IPO圖輸入:用戶操作請求處理: 啟動(dòng)應(yīng)用程序 根據(jù)輸入的用戶操作請求,調(diào)用相應(yīng)的功能模塊。輸出:各個(gè)功能模塊3.類設(shè)計(jì)與實(shí)現(xiàn)模塊功能主要由若干類實(shí)現(xiàn),下面詳細(xì)闡述各個(gè)類的設(shè)計(jì)與實(shí)現(xiàn)。類1:主類(1)類定義:public class PSA(2)功能描述:應(yīng)用程序的主類,負(fù)責(zé)啟動(dòng)程序(3)屬性設(shè)計(jì):如表4-5所示。表4-5 主類屬性定義表屬性名屬性類型訪問控制描述packFrameboolean默認(rèn)是否優(yōu)化/壓縮窗體界面(4)構(gòu)造方法設(shè)計(jì):構(gòu)造方法1:1)方法定義:public
10、PSA()2)IPO圖:輸入:無處理: 創(chuàng)建主窗體 優(yōu)化窗體界面 將窗體居中顯示輸出:無3)程序清單: public PSA() MainFrame frame = new MainFrame();/創(chuàng)建主窗體 /優(yōu)化窗體界面 if (packFrame) frame.pack(); else frame.validate(); /將窗體居中顯示 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = frame.getSize(); if (frameSize.heig
11、ht > screenSize.height) frameSize.height = screenSize.height; if (frameSize.width > screenSize.width) frameSize.width = screenSize.width; frame.setLocation(screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); frame.setVisible(true); (5)方法設(shè)計(jì):方法1:main 方法1)方法定義:pu
12、blic static void main(String args) 2)功能描述:啟動(dòng)應(yīng)用程序3)IPO圖:輸入:應(yīng)用程序運(yùn)行參數(shù)處理:創(chuàng)建主類對象。輸出:無4)程序清單: /Main 方法 public static void main(String args) new PSA(); 類2:主窗體類(1)類定義:public class MainFrame extends JFrame(2)功能描述:為用戶提供主體操作界面,對系統(tǒng)功能統(tǒng)一管理。(3)屬性設(shè)計(jì):如表4-6所示。表4-6 主窗體類屬性定義表屬性名屬性類型訪問控制描述contentPaneJPanel默認(rèn)主窗體內(nèi)容網(wǎng)格borde
13、rLayout1BorderLayout默認(rèn)主窗體布局管理jToolBar1JToolBar默認(rèn)工具欄jButton1JButton默認(rèn)口令維護(hù)按鈕jButton2JButton默認(rèn)日常記事功能按鈕jButton3JButton默認(rèn)通訊簿功能按鈕jButton4JButton默認(rèn)密碼備忘功能按鈕jButton5JButton默認(rèn)數(shù)據(jù)庫維護(hù)功能按鈕JButton6JButton默認(rèn)退出系統(tǒng)功能按鈕jPanel1JPanel默認(rèn)藍(lán)色區(qū)域面板xYLayout1XYLayout默認(rèn)藍(lán)色區(qū)域布局管理jLabel1JLabel默認(rèn)藍(lán)色區(qū)域中軟件名稱標(biāo)簽(4)構(gòu)造方法設(shè)計(jì):構(gòu)造方法1:1)方法定義:publ
14、ic MainFrame()2)IPO圖:輸入:無處理: 設(shè)置Window事件缺省處理 初始化主窗體輸出:無4)程序清單: public MainFrame() /設(shè)置Window事件缺省處理 enableEvents(AWTEvent.WINDOW_EVENT_MASK); try jbInit();/調(diào)用初始化方法初始化主窗體 catch(Exception e) e.printStackTrace(); (5)方法設(shè)計(jì):方法1:窗體初始化方法1)方法定義:private void jbInit() throws Exception2)功能描述:初始化主窗體界面3)IPO圖:輸入:無處理:
15、 創(chuàng)建并初始化各個(gè)界面容器和組件; 為各個(gè)組件注冊事件監(jiān)聽對象。輸出:無4)程序清單:/限于篇幅,詳細(xì)代碼請參見系統(tǒng)源程序。方法2:口令維護(hù)按鈕事件處理方法1)方法定義:void jButton1_actionPerformed(ActionEvent e)2)功能描述:啟動(dòng)口令維護(hù)對話框。3)IPO圖:輸入:動(dòng)作事件處理: 創(chuàng)建口令維護(hù)對話框; 獲取屏幕中心位置,并顯示對話框。輸出:口令維護(hù)對話框4)程序清單: void jButton1_actionPerformed(ActionEvent e) User_Dialog dlg = new User_Dialog();/創(chuàng)建口令維護(hù)對話框
16、 /設(shè)置對話框顯示位置 Dimension dlgSize = dlg.getPreferredSize(); Dimension frmSize = getSize(); Point loc = getLocation(); dlg.setLocation( (frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y); /設(shè)置對話框模式為模態(tài)對話框 dlg.setModal(true); dlg.pack(); /顯示對話框 dlg.show(); 方法37:其他功能按
17、鈕事件處理方法此部分方法設(shè)計(jì)與方法2基本一致,限于篇幅,實(shí)現(xiàn)代碼請參見系統(tǒng)源程序。3.2 日常記事管理模塊1.功能描述提供對日常事件記錄的管理功能,主要是提供對日常事件信息的錄入、修改、刪除和查詢功能。2.IPO圖輸入:日常事件記錄處理: 啟動(dòng)管理界面,顯示日常記錄信息; 根據(jù)用戶選擇功能在數(shù)據(jù)庫收入表中查詢、添加、更新和刪除記錄; 更新管理界面顯示。輸出:日常事件記錄數(shù)據(jù)庫表3.類設(shè)計(jì)與實(shí)現(xiàn)該模塊的各個(gè)功能主要由NotePad_Dialog類實(shí)現(xiàn),下面詳細(xì)闡述該類的設(shè)計(jì)與實(shí)現(xiàn)。(1)類定義:public class NotePad_Dialog extends JDialog(2)功能描述:
18、實(shí)現(xiàn)日常事件記錄管理主體功能。(3)屬性設(shè)計(jì):如表4-7所示。表4-7 日常記事管理類屬性定義表屬性名屬性類型訪問控制描述panel1JPanel默認(rèn)對話框面板jPanel1JPanel默認(rèn)查詢區(qū)面板jPanel2JPanel默認(rèn)編輯區(qū)域面板gridBagLayout1GridBagLayout默認(rèn)對話框面板布局xYLayout2XYLayout默認(rèn)查詢區(qū)布局xYLayout3XYLayout默認(rèn)編輯區(qū)布局tableScrollPane1TableScrollPane默認(rèn)數(shù)據(jù)顯示區(qū)滾動(dòng)面板jdbTable1JdbTable默認(rèn)數(shù)據(jù)顯示表格jButton1JButton默認(rèn)查詢功能按鈕jButt
19、on2JButton默認(rèn)增加日常事件記錄按鈕jButton3JButton默認(rèn)保存日常事件記錄按鈕jButton4JButton默認(rèn)刪除日常事件記錄按鈕jButton5JButton默認(rèn)退出按鈕jLabel1JLabel默認(rèn)查詢條件提示標(biāo)簽jLabel2JLabel默認(rèn)查詢內(nèi)容提示標(biāo)簽jLabel3JLabel默認(rèn)事件日期提示標(biāo)簽jLabel4JLabel默認(rèn)事件類別提示標(biāo)簽jLabel5JLabel默認(rèn)事件標(biāo)題提示標(biāo)簽jLabel6JLabel默認(rèn)事件內(nèi)容提示標(biāo)簽jComboBox1JComboBox默認(rèn)查詢條件下拉列表jTextField1JTextField默認(rèn)查詢內(nèi)容編輯文本框jdbT
20、extField1JdbTextField默認(rèn)事件日期編輯文本框jdbTextField2JdbTextField默認(rèn)事件類別編輯文本框jdbTextField3JdbTextField默認(rèn)事件標(biāo)題編輯文本框jdbTextField4JdbTextField默認(rèn)事件內(nèi)容編輯文本框database1Database默認(rèn)數(shù)據(jù)庫連接queryDataSet1QueryDataSet默認(rèn)日常記錄數(shù)據(jù)表數(shù)據(jù)集column15Column默認(rèn)數(shù)據(jù)顯示表格的各個(gè)欄目(4)構(gòu)造方法設(shè)計(jì):構(gòu)造方法1:1)方法定義:public NotePad_Dialog (Frame frame, String title,
21、 boolean modal)2)IPO圖:輸入:父窗體、標(biāo)題和模式處理: 調(diào)用父類構(gòu)造方法初始化窗體; 初始化界面組件; 優(yōu)化窗體顯示。輸出:日常記事管理對話框3)程序清單: public NotePad_Dialog(Frame frame, String title, boolean modal) super(frame, title, modal); try jbInit(); pack(); catch(Exception ex) ex.printStackTrace(); (5)方法設(shè)計(jì):方法1:jbInit 方法1)方法定義:private void jbInit() throw
22、s Exception 2)功能描述:初始化對話框3)IPO圖:輸入:無處理: 初始化界面組件; 設(shè)置數(shù)據(jù)庫連接,獲取數(shù)據(jù); 注冊事件監(jiān)聽。輸出:無4)程序清單: private void jbInit() throws Exception /設(shè)置對話框布局 panel1.setLayout(gridBagLayout1); /設(shè)置查詢區(qū)面板外觀和布局 jPanel1.setBorder(BorderFactory.createEtchedBorder(); jPanel1.setLayout(xYLayout2); /設(shè)置編輯區(qū)域面板外觀和布局 jPanel2.setBorder(Borde
23、rFactory.createEtchedBorder(); jPanel2.setLayout(xYLayout3); /設(shè)置數(shù)據(jù)編輯區(qū)域各個(gè)組件 jLabel1.setFont(new java.awt.Font("DialogInput", 0, 12); jLabel1.setText("查詢條件:"); jLabel2.setText("查詢內(nèi)容:"); jLabel2.setFont(new java.awt.Font("DialogInput", 0, 12); jTextField1.setText
24、(""); jComboBox1.addItem("按類別查詢"); jComboBox1.addItem("按標(biāo)題查詢"); jComboBox1.setSelectedIndex(-1); /設(shè)置編輯區(qū)域各個(gè)組件 jLabel3.setFont(new java.awt.Font("DialogInput", 0, 12); jLabel3.setText("日期:"); jLabel4.setText("類別:"); jLabel4.setFont(new java.a
25、wt.Font("DialogInput", 0, 12); jdbTextField1.setText(""); jdbTextField1.setColumnName("date"); jdbTextField1.setDataSet(queryDataSet1); jdbTextField2.setText(""); jdbTextField2.setColumnName("sort"); jdbTextField2.setDataSet(queryDataSet1); jLabel5.s
26、etText("標(biāo)題:"); jLabel5.setFont(new java.awt.Font("DialogInput", 0, 12); jdbTextField3.setText(""); jdbTextField3.setColumnName("caption"); jdbTextField3.setDataSet(queryDataSet1); jLabel6.setFont(new java.awt.Font("DialogInput", 0, 12); jLabel6.setTe
27、xt("內(nèi)容:"); jdbTextArea1.setColumnName("comments"); jdbTextArea1.setDataSet(queryDataSet1); /設(shè)置按鈕外觀,注冊監(jiān)聽 jButton1.setFont(new java.awt.Font("DialogInput", 0, 12); jButton1.setText("查詢"); jButton1.addActionListener(new NotePad_Dialog_jButton1_actionAdapter(this)
28、; jButton2.setText("新增"); jButton2.addActionListener(new NotePad_Dialog_jButton2_actionAdapter(this); jButton2.setFont(new java.awt.Font("DialogInput", 0, 12); jButton3.setText("保存"); jButton3.addActionListener(new NotePad_Dialog_jButton3_actionAdapter(this); jButton3.s
29、etFont(new java.awt.Font("DialogInput", 0, 12); jButton4.setText("刪除"); jButton4.addActionListener(new NotePad_Dialog_jButton4_actionAdapter(this); jButton4.setFont(new java.awt.Font("DialogInput", 0, 12); jButton5.setText("退出"); jButton5.addActionListener(new
30、 NotePad_Dialog_jButton5_actionAdapter(this); jButton5.setFont(new java.awt.Font("DialogInput", 0, 12); /連接數(shù)據(jù)庫 database1.setConnection(new com.borland.dx.sql.dataset.ConnectionDescriptor("jdbc:odbc:psa", "", "", false, "sun.jdbc.odbc.JdbcOdbcDriver")
31、; /獲取數(shù)據(jù)集合 queryDataSet1.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "select * from notepad;", null, true, Load.ALL); /設(shè)置顯示數(shù)據(jù)表格欄目 column1.setCaption("編號(hào)"); column1.setColumnName("ID"); column1.setDataType(com.borland.dx.dataset.Variant.INT); column
32、1.setRowId(true); column1.setTableName("notepad"); column1.setVisible(com.borland.jb.util.TriStateProperty.FALSE); column1.setServerColumnName("ID"); column1.setSqlType(4); /限于篇幅各個(gè)欄目設(shè)置請參見系統(tǒng)源程序 queryDataSet1.setColumns(new Column column1, column2, column3, column4, column5); /顯示數(shù)據(jù)
33、表格 jdbTable1.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS); jdbTable1.setDataSet(queryDataSet1); jdbTable1.setEditable(false); this.setResizable(false); this.setTitle("日常記事"); getContentPane().add(panel1); /限于篇幅,對話框布局設(shè)置請參見系統(tǒng)源程序 方法2:查詢方法1)方法定義:void jButton1_actionPerformed(ActionEvent e
34、)2)功能描述:處理查詢按鈕動(dòng)作事件,根據(jù)查詢條件顯示查詢結(jié)果。3)IPO圖:輸入:動(dòng)作事件處理: 檢查是否輸入查詢條件和查詢內(nèi)容; 根據(jù)查詢條件和內(nèi)容構(gòu)造sql語句; 查詢數(shù)據(jù)并對其進(jìn)行異常處理。輸出:收入記錄管理對話框4)程序清單: void jButton1_actionPerformed(ActionEvent e) /檢查是否輸入查詢條件和查詢內(nèi)容 if(jComboBox1.getSelectedIndex()<0) JOptionPane.showMessageDialog(this,"請選擇查詢條件"); return; if(jTextField1.
35、getText().length()=0) JOptionPane.showMessageDialog(this,"請輸入查詢內(nèi)容"); return; /根據(jù)查詢條件和內(nèi)容構(gòu)造sql語句 String condition = "caption" if(jComboBox1.getSelectedIndex()=0) condition="sort" if(queryDataSet1.isOpen() queryDataSet1.close(); String sql = "select * from notepad whe
36、re "+condition+" = '" + jTextField1.getText() + "'" /查詢數(shù)據(jù)并顯示 tryqueryDataSet1.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1,sql, null, true,Load.ALL); queryDataSet1.open(); catch(Exception ex) JOptionPane.showMessageDialog(this,ex.toString(); 方法3:
37、添加新記錄方法1)方法定義:void jButton2_actionPerformed(ActionEvent e)2)功能描述:處理添加按鈕的動(dòng)作事件,在數(shù)據(jù)庫中添加一條記錄。3)IPO圖:輸入:動(dòng)作事件處理: 在數(shù)據(jù)集中插入一條空記錄; 等待用戶輸入記錄數(shù)據(jù)。輸出:空記錄4)程序清單: void jButton2_actionPerformed(ActionEvent e) /在數(shù)據(jù)集中插入一條空記錄 queryDataSet1.insertRow(false); 方法4:保存記錄方法1)方法定義:void jButton3_actionPerformed(ActionEvent e)2)
38、功能描述:處理保存按鈕的動(dòng)作事件,將用戶輸入的記錄數(shù)據(jù)保存到數(shù)據(jù)庫中。3)IPO圖:輸入:動(dòng)作事件處理: 保存記錄數(shù)據(jù)到數(shù)據(jù)庫中; 更新界面顯示。輸出:數(shù)據(jù)庫記錄4)程序清單: void jButton3_actionPerformed(ActionEvent e) try /保存記錄數(shù)據(jù)到數(shù)據(jù)庫中 queryDataSet1.post(); queryDataSet1.saveChanges(); /更新界面提示 queryDataSet1.refresh(); catch(Exception ex) queryDataSet1.refresh(); JOptionPane.showMess
39、ageDialog(this,"保存失敗!","提示",JOptionPane.ERROR_MESSAGE); 方法5:刪除記錄方法1)方法定義:void jButton4_actionPerformed(ActionEvent e)2)功能描述:處理刪除按鈕的動(dòng)作事件,將用戶選擇的記錄數(shù)據(jù)從數(shù)據(jù)庫中刪除。3)IPO圖:輸入:動(dòng)作事件處理: 從記錄集中刪除當(dāng)前記錄; 更新數(shù)據(jù)庫; 更新界面顯示。輸出:數(shù)據(jù)庫記錄4)程序清單: void jButton4_actionPerformed(ActionEvent e) try /刪除記錄 queryDataS
40、et1.deleteRow(); /更新數(shù)據(jù)庫 queryDataSet1.post(); queryDataSet1.saveChanges(); /更新界面顯示 queryDataSet1.refresh(); catch(Exception ex) queryDataSet1.refresh();JOptionPane.showMessageDialog(this,"刪除失敗","提示",JOptionPane.ERROR_MESSAGE); 方法6:退出方法1)方法定義:void jButton5_actionPerformed(ActionEv
41、ent e)2)功能描述:處理退出按鈕的動(dòng)作事件,關(guān)閉收入記錄對話框。3)IPO圖:輸入:動(dòng)作事件處理: 關(guān)閉收入記錄對話框輸出:無4)程序清單: void jButton5_actionPerformed(ActionEvent e) this.dispose(); 3.3 通訊簿管理模塊1.功能描述提供對通訊簿記錄的管理功能,主要是提供對通訊簿信息的錄入、修改、刪除和查詢功能。2.IPO圖輸入:通訊簿記錄處理: 啟動(dòng)管理界面,顯示聯(lián)系人信息; 根據(jù)用戶選擇功能在數(shù)據(jù)庫收入表中查詢、添加、更新和刪除記錄; 更新管理界面顯示。輸出:通訊簿記錄數(shù)據(jù)庫表3.類設(shè)計(jì)與實(shí)現(xiàn)該模塊的各個(gè)功能主要由Add
42、rBook_Dialog類實(shí)現(xiàn),下面詳細(xì)闡述該類的設(shè)計(jì)與實(shí)現(xiàn)。(1)類定義:public class AddrBook_Dialog extends JDialog(2)功能描述:實(shí)現(xiàn)通訊簿記錄管理主體功能。(3)屬性設(shè)計(jì):如表4-8所示。表4-8 通訊簿管理類屬性定義表屬性名屬性類型訪問控制描述panel1JPanel默認(rèn)對話框面板jPanel1JPanel默認(rèn)查詢區(qū)面板jPanel2JPanel默認(rèn)編輯區(qū)域面板gridBagLayout1GridBagLayout默認(rèn)對話框面板布局xYLayout2XYLayout默認(rèn)查詢區(qū)布局xYLayout3XYLayout默認(rèn)編輯區(qū)布局tableSc
43、rollPane1TableScrollPane默認(rèn)聯(lián)系人列表面板jdbTable1JdbTable默認(rèn)聯(lián)系人列表jButton1JButton默認(rèn)查詢功能按鈕jButton2JButton默認(rèn)增加記錄按鈕jButton3JButton默認(rèn)保存記錄按鈕jButton4JButton默認(rèn)刪除記錄按鈕jButton5JButton默認(rèn)退出按鈕jLabel1JLabel默認(rèn)查詢條件提示標(biāo)簽jLabel2JLabel默認(rèn)查詢內(nèi)容提示標(biāo)簽jLabel3JLabel默認(rèn)聯(lián)系人姓名提示標(biāo)簽jLabel4JLabel默認(rèn)聯(lián)系人性別提示標(biāo)簽jLabel5JLabel默認(rèn)關(guān)系提示標(biāo)簽jLabel6JLabel默認(rèn)
44、住宅電話提示標(biāo)簽jLabel7JLabel默認(rèn)辦公電話提示標(biāo)簽jLabel8JLabel默認(rèn)移動(dòng)電話提示標(biāo)簽jLabel9JLabel默認(rèn)電子郵件提示標(biāo)簽jLabel10JLabel默認(rèn)OICQ提示標(biāo)簽jLabel11JLabel默認(rèn)單位提示標(biāo)簽jLabel12JLabel默認(rèn)地址提示標(biāo)簽jLabel13JLabel默認(rèn)備注提示標(biāo)簽jComboBox1JComboBox默認(rèn)查詢條件下拉列表jTextField1JTextField默認(rèn)查詢內(nèi)容編輯文本框jdbTextField1JdbTextField默認(rèn)聯(lián)系人姓名編輯文本框jdbTextField2JdbTextField默認(rèn)聯(lián)系人性別編輯文
45、本框jdbTextField3JdbTextField默認(rèn)關(guān)系編輯文本框jdbTextField4JdbTextField默認(rèn)住宅電話編輯文本框jdbTextField5JdbTextField默認(rèn)辦公電話編輯文本框jdbTextField6JdbTextField默認(rèn)移動(dòng)電話編輯文本框jdbTextField7JdbTextField默認(rèn)電子郵件編輯文本框jdbTextField8JdbTextField默認(rèn)OICQ編輯文本框jdbTextField9JdbTextField默認(rèn)單位編輯文本框jdbTextField10JdbTextField默認(rèn)地址編輯文本框jScrollPane1JSc
46、rollPane默認(rèn)備注文本編輯區(qū)滾動(dòng)面板jdbTextArea1JdbTextArea默認(rèn)備注文本編輯區(qū)database1Database默認(rèn)數(shù)據(jù)庫連接queryDataSet1QueryDataSet默認(rèn)日常記錄數(shù)據(jù)表數(shù)據(jù)集column112Column默認(rèn)數(shù)據(jù)顯示表格的各個(gè)欄目(4)構(gòu)造方法設(shè)計(jì):構(gòu)造方法1:1)方法定義:public AddrBook_Dialog (Frame frame, String title, boolean modal)2)IPO圖:輸入:父窗體、標(biāo)題和模式處理: 調(diào)用父類構(gòu)造方法初始化窗體; 初始化界面組件; 優(yōu)化窗體顯示。輸出:日常記事管理對話框3)程序
47、清單: public AddrBook_Dialog(Frame frame, String title, boolean modal) super(frame, title, modal); try jbInit(); pack(); catch(Exception ex) ex.printStackTrace(); (5)方法設(shè)計(jì):方法1:jbInit 方法1)方法定義:private void jbInit() throws Exception 2)功能描述:初始化對話框3)IPO圖:輸入:無處理: 初始化界面組件; 設(shè)置數(shù)據(jù)庫連接,獲取數(shù)據(jù); 注冊事件監(jiān)聽。輸出:無4)程序清單: /限
48、于篇幅,此部分程序清單請參見系統(tǒng)源程序方法2:查詢方法1)方法定義:void jButton1_actionPerformed(ActionEvent e)2)功能描述:處理查詢按鈕動(dòng)作事件,根據(jù)查詢條件顯示查詢結(jié)果。3)IPO圖:輸入:動(dòng)作事件處理: 檢查是否輸入查詢條件和查詢內(nèi)容; 根據(jù)查詢條件和內(nèi)容構(gòu)造sql語句; 查詢數(shù)據(jù)并對其進(jìn)行異常處理。輸出:收入記錄管理對話框4)程序清單: void jButton1_actionPerformed(ActionEvent e) /檢查是否輸入查詢條件和查詢內(nèi)容 if(jComboBox1.getSelectedIndex()<0) JOp
49、tionPane.showMessageDialog(this,"請選擇查詢條件"); return; if(jTextField1.getText().length()=0) JOptionPane.showMessageDialog(this,"請輸入查詢內(nèi)容"); return; /根據(jù)查詢條件和內(nèi)容構(gòu)造sql語句 String condition = "type" if(jComboBox1.getSelectedIndex()=0) condition="name" if(queryDataSet1.is
50、Open() queryDataSet1.close(); String sql = "select * from addrbook where "+condition+" = '" + jTextField1.getText() + "'" /查詢數(shù)據(jù)并顯示 tryqueryDataSet1.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1,sql, null, true,Load.ALL); queryDataSet1.open();
51、 catch(Exception ex) JOptionPane.showMessageDialog(this,ex.toString(); 方法3:添加新記錄方法1)方法定義:void jButton2_actionPerformed(ActionEvent e)2)功能描述:處理添加按鈕的動(dòng)作事件,在數(shù)據(jù)庫中添加一條記錄。3)IPO圖:輸入:動(dòng)作事件處理: 在數(shù)據(jù)集中插入一條空記錄; 等待用戶輸入記錄數(shù)據(jù)。輸出:空記錄4)程序清單: void jButton2_actionPerformed(ActionEvent e) /在數(shù)據(jù)集中插入一條空記錄 queryDataSet1.insertRow(false); 方法4:保存記錄方法1)方法定義:void jButton3_actionPerformed(ActionEvent e)2)功能描述:處理保存按鈕的動(dòng)作事件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 艦橋上行走的規(guī)則
- 城市綜合管廊建設(shè)與管理解決方案
- 環(huán)境科學(xué)中關(guān)于全球氣候變化試題
- 企業(yè)ERP系統(tǒng)集成服務(wù)項(xiàng)目合同
- 地理信息系統(tǒng)應(yīng)用知識(shí)點(diǎn)梳理與考核試題集
- 建筑結(jié)構(gòu)與建筑設(shè)計(jì)練習(xí)題庫
- 現(xiàn)代管理學(xué)原理應(yīng)用問題解析題
- 企業(yè)研發(fā)投入與轉(zhuǎn)化效率對比表
- 建筑工程施工承包協(xié)議
- 個(gè)性化學(xué)習(xí)服務(wù)平臺(tái)構(gòu)建及實(shí)施方案設(shè)計(jì)
- TSDDP 8-2024 新型無機(jī)磨石施工質(zhì)量與驗(yàn)收規(guī)范
- MES系統(tǒng)實(shí)施管理辦法
- 2024年新課標(biāo)高考化學(xué)真題試題(原卷版+含解析)
- 《七色花》整本書閱讀導(dǎo)讀活動(dòng) 教學(xué)設(shè)計(jì)-2023-2024學(xué)年語文二年級下冊統(tǒng)編版
- 冀人版科學(xué)六年級下冊全冊同步練習(xí)
- 醫(yī)院營養(yǎng)食堂餐飲服務(wù)投標(biāo)方案(技術(shù)方案)
- 惡性心律失常的識(shí)別及處理
- 冀教版數(shù)學(xué)四年級(下冊)觀察物體(二)第2課時(shí) 觀察立體
- 2024年中國科學(xué)技術(shù)大學(xué)少年創(chuàng)新班數(shù)學(xué)試題真題(答案詳解)
- 中職統(tǒng)編《金屬材料與熱處理》系列課件 第4章 非合金鋼(動(dòng)畫) 云天系列課件
- 2024年安徽機(jī)電職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試題庫含答案解析
評論
0/150
提交評論