版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 軟件工程綜合實(shí)踐報(bào)告</p><p><b> 名片管理系統(tǒng)設(shè)計(jì)</b></p><p><b> 目錄</b></p><p><b> 1 問(wèn)題定義2</b></p><p><b> 2 可行性研究2</b><
2、/p><p> 2.1 技術(shù)可行性:2</p><p> 2.2 經(jīng)濟(jì)可行性:2</p><p> 2.3 操作可行性:2</p><p><b> 3 需求分析2</b></p><p> 3.1系統(tǒng)功能需求分析2</p><p> 3.2系統(tǒng)性能需求分
3、析3</p><p> 3.3實(shí)體-關(guān)系3</p><p> 3.4 系統(tǒng)數(shù)據(jù)流圖3</p><p><b> 3.5數(shù)據(jù)字典4</b></p><p><b> 4.總體設(shè)計(jì)5</b></p><p><b> 4.1層次圖5</b&g
4、t;</p><p> 4.2系統(tǒng)流程圖5</p><p><b> 4.3關(guān)系模式6</b></p><p><b> 5.詳細(xì)設(shè)計(jì)6</b></p><p><b> 5.1建表6</b></p><p> 5.2加載驅(qū)動(dòng)和URL
5、6</p><p> 5.3應(yīng)用系統(tǒng)部分7</p><p> 5.3.1視圖窗口7</p><p> 5.3.2監(jiān)視器7</p><p> 5.3.3數(shù)據(jù)操作7</p><p> 5.4程序流程圖8</p><p> 5.5數(shù)據(jù)庫(kù)設(shè)計(jì)8</p><p&
6、gt;<b> 6.實(shí)現(xiàn)9</b></p><p> 6.1用戶登錄界面9</p><p> 6.2名片管理系統(tǒng)主窗體11</p><p> 6.3監(jiān)視器mnuHandler()和SelectFrameHandler()15</p><p> 6.4數(shù)據(jù)操作類DatabaseOperate()22&l
7、t;/p><p><b> 7.測(cè)試31</b></p><p> 7.1修改密碼模塊測(cè)試31</p><p> 7.2退出模塊測(cè)試32</p><p> 7.3增加類別模塊測(cè)試32</p><p> 7.4修改類別模塊測(cè)試33</p><p> 7.5刪
8、除類別模塊測(cè)試34</p><p> 7.6插入名片模塊測(cè)試35</p><p> 7.7多項(xiàng)查詢模塊測(cè)試36</p><p> 7.8修改名片模塊測(cè)試38</p><p> 7.9刪除名片模塊測(cè)試38</p><p> 7.10生日提示模塊測(cè)試39</p><p><
9、;b> 8.個(gè)人小結(jié)39</b></p><p><b> 參考文獻(xiàn)40</b></p><p><b> 1 問(wèn)題定義</b></p><p> 項(xiàng)目名稱:名片管理系統(tǒng)</p><p> 完成的功能:按客戶編號(hào)、姓名或者職業(yè)查詢客戶的基本信息;可以添加,修改或刪除客
10、戶信息;按客戶信息編號(hào)查詢名片的基本信息;對(duì)名片信息進(jìn)行添加、刪除、修改。</p><p> 需要處理的基本數(shù)據(jù):個(gè)人信息:編號(hào)、姓名、職業(yè)、聯(lián)系方式等;名片信息:名片號(hào)等。</p><p><b> 2 可行性研究</b></p><p> 2.1 技術(shù)可行性:</p><p> 本設(shè)計(jì)“名片管理系統(tǒng)”是為各類
11、人員開(kāi)發(fā)的信息管理系統(tǒng)。通過(guò)兩個(gè)星期的學(xué)習(xí),對(duì)開(kāi)發(fā)管理信息系統(tǒng)又有了新的認(rèn)識(shí)。使自己在開(kāi)發(fā)管理信息系統(tǒng)方面的技術(shù)更加成熟。由于本設(shè)計(jì)最重要體現(xiàn)的是實(shí)用性,所以通過(guò)大量的社會(huì)調(diào)查和分析,結(jié)合自己現(xiàn)有的技術(shù)水平加上老師的指導(dǎo),能按期完成本次課程設(shè)計(jì)。</p><p> 2.2 經(jīng)濟(jì)可行性:</p><p> 支出:硬件設(shè)備:PC機(jī);</p><p> 軟件:Win
12、dows xp,Myeclipse,SQL Server。</p><p> 效益:進(jìn)一步實(shí)現(xiàn)辦公自動(dòng)化,減少人力投資和辦公費(fèi)用,極大地提高辦公效率。</p><p> 2.3 操作可行性:</p><p> 本軟件的用戶對(duì)象是信息管理的工作人員,由于本軟件要設(shè)計(jì)成友好的界面,寫出詳細(xì)的使用說(shuō)明,用戶只需懂得簡(jiǎn)單的計(jì)算機(jī)操作知識(shí),就能自由應(yīng)用本軟件。</
13、p><p> 所以從以上幾個(gè)方面的分析來(lái)看,開(kāi)發(fā)本軟件是完全可行的。</p><p><b> 3 需求分析</b></p><p> 3.1系統(tǒng)功能需求分析</p><p> 系統(tǒng)開(kāi)發(fā)的總體任務(wù)是各種信息的系統(tǒng)化、規(guī)范化和自動(dòng)化。</p><p><b> 主要完成的功能:<
14、;/b></p><p> 按客戶編號(hào)、姓名或者職業(yè)查詢客戶的基本信息;</p><p> 可以添加,修改或刪除客戶信息;</p><p> 按客戶信息編號(hào)查詢名片的基本信息;</p><p> 對(duì)名片信息進(jìn)行添加、刪除、修改、查詢。</p><p> 3.2系統(tǒng)性能需求分析</p>&l
15、t;p><b> ?。?)數(shù)據(jù)精確度</b></p><p> 進(jìn)行操作請(qǐng)求時(shí),如:名片添加、名片刪除、名片修改、名片查詢時(shí),應(yīng)保證輸入數(shù)據(jù)與數(shù)據(jù)庫(kù)數(shù)據(jù)的相匹配性。而在滿足用戶請(qǐng)求時(shí),系統(tǒng)應(yīng)保證所響應(yīng)數(shù)據(jù)的正確性和全面性。</p><p><b> (2)時(shí)間特性</b></p><p> 為滿足用戶高效要求,
16、數(shù)據(jù)的響應(yīng)時(shí)間、更新處理時(shí)間、數(shù)據(jù)轉(zhuǎn)換與傳輸時(shí)間、運(yùn)行時(shí)間都應(yīng)在可接受范圍之內(nèi)。</p><p><b> 3.3實(shí)體-關(guān)系</b></p><p> 名片信息實(shí)體E-R圖如圖3-1所示:</p><p> 圖3-1 名片信息實(shí)體E-R圖</p><p> 3.4 系統(tǒng)數(shù)據(jù)流圖</p><p&
17、gt; 本系統(tǒng)根據(jù)上面的設(shè)計(jì)規(guī)劃出的實(shí)體有:名片存儲(chǔ)系統(tǒng)(名片號(hào)),用戶個(gè)人信息(編號(hào)、姓名、職業(yè)、聯(lián)系方式)。</p><p> 描述名片管理系統(tǒng)功能的數(shù)據(jù)流圖如3-2所示:</p><p> 圖3-2 名片管理系統(tǒng)的數(shù)據(jù)流圖</p><p><b> 3.5數(shù)據(jù)字典</b></p><p><b>
18、 4.總體設(shè)計(jì)</b></p><p> 經(jīng)過(guò)需求分析階段的工作,系統(tǒng)必須“做什么”已經(jīng)清楚了,現(xiàn)在是決定“怎樣做”的時(shí)候了??傮w設(shè)計(jì)的基本目的就是回答“概括的說(shuō),系統(tǒng)應(yīng)該如何實(shí)現(xiàn)?”這個(gè)問(wèn)題,因此,總體設(shè)計(jì)又稱為概要設(shè)計(jì)或初步設(shè)計(jì)??傮w設(shè)計(jì)的重要任務(wù)是設(shè)計(jì)軟件的結(jié)構(gòu),也就是要確定系統(tǒng)中每個(gè)程序由哪些模塊組成,以及這些模塊相互間的關(guān)系。</p><p> 通常程序中的一個(gè)
19、模塊完成一個(gè)恰當(dāng)?shù)淖庸δ?。?yīng)該把模塊組成良好的層次系統(tǒng),頂層模塊調(diào)用它的下層模塊以實(shí)現(xiàn)程序的完整功能,每個(gè)下層模塊再調(diào)用更下層的模塊,從而完成程序的一個(gè)子功能,最下層的模塊完成最具體的功能。軟件結(jié)構(gòu)(即由模塊組成的層次系統(tǒng))可以用層次圖或結(jié)構(gòu)圖來(lái)描述。</p><p><b> 4.1層次圖</b></p><p> 對(duì)需求分析得到各項(xiàng)功能進(jìn)行集中、分塊、按照結(jié)構(gòu)
20、化程序設(shè)計(jì)的 ,得到如圖4-1所示的層次圖。</p><p> 圖4-1 名片管理系統(tǒng)的層次圖</p><p><b> 4.2系統(tǒng)流程圖</b></p><p> 系統(tǒng)流程圖是概括地描繪物理系統(tǒng)的傳統(tǒng)工具。它的基本思想是用圖形符號(hào)以黑盒子形式描繪組成系統(tǒng)的每個(gè)部件。系統(tǒng)流程圖表達(dá)的是數(shù)據(jù)在系統(tǒng)各部件之間流動(dòng)的情況,而不是對(duì)數(shù)據(jù)進(jìn)行加工處
21、理的控制過(guò)程,因此盡管系統(tǒng)流程圖的某些符號(hào)和程序流程圖的符號(hào)形式相同,但是它卻是物理數(shù)據(jù)流圖而不是程序流程圖。</p><p> 系統(tǒng)流程圖如圖4-2所示:</p><p> 圖4-2 系統(tǒng)流程圖</p><p><b> 4.3關(guān)系模式</b></p><p> 用戶(用戶名,密碼)</p>&l
22、t;p> 分類(類別編號(hào),類別)</p><p> 名片(卡號(hào),姓名,性別,生日,工作單位,職務(wù),家庭電話,辦公電話,移動(dòng)電話,家庭地址,郵編,電子郵件)</p><p><b> 5.詳細(xì)設(shè)計(jì)</b></p><p> 詳細(xì)設(shè)計(jì)階段的根本目標(biāo)是確定應(yīng)該怎樣具體地實(shí)現(xiàn)所要求的系統(tǒng),也就是說(shuō),經(jīng)過(guò)這個(gè)階段的設(shè)計(jì)工作,應(yīng)該得出對(duì)目標(biāo)系
23、統(tǒng)的精確描述,從而在編碼階段可以把這個(gè)描述直接翻譯成用某種程序設(shè)計(jì)語(yǔ)言書寫的程序。詳細(xì)設(shè)計(jì)的結(jié)果基本上決定了最終的程序代碼的質(zhì)量。</p><p> 從前面得知,本系統(tǒng)是JAVA在與數(shù)據(jù)庫(kù)連接的基礎(chǔ)上對(duì)數(shù)據(jù)進(jìn)行的一系列操作。JAVA編寫的名片管理系統(tǒng)屬于前臺(tái)應(yīng)用,SQL SERVER數(shù)據(jù)庫(kù)管理系統(tǒng)作為提供后臺(tái)數(shù)據(jù)的平臺(tái)。 </p><p><b> 5.1建表<
24、/b></p><p> 后臺(tái)數(shù)據(jù)庫(kù)的建立可以很容易根據(jù)前面的數(shù)據(jù)庫(kù)設(shè)計(jì)分析實(shí)現(xiàn),即建立三張表,分別存儲(chǔ)用戶登錄時(shí)所需數(shù)據(jù),名片信息和名片的分類信息。</p><p> 5.2加載驅(qū)動(dòng)和URL</p><p> JAVA連接SQL SERVER2005本程序采用ODBC數(shù)據(jù)源的連接方法。加載驅(qū)動(dòng)和URL為:</p><p> C
25、lass.forName("sun.jdbc.odbc.JdbcOdbcDriver");</p><p> url="jdbc:odbc:userinfo";</p><p><b> 5.3應(yīng)用系統(tǒng)部分</b></p><p> JAVA編寫的應(yīng)用系統(tǒng)部分可以大致分為:視圖窗口,監(jiān)視器,數(shù)據(jù)操作
26、。他們相互隔離又相互配合來(lái)完成各種操作。</p><p><b> 5.3.1視圖窗口</b></p><p> 作為系統(tǒng)的主界面,采用BorderLayout的布局方式,需要包含菜單、現(xiàn)實(shí)名片信息的窗口和名片分類的窗口。新建四個(gè)菜單:用戶管理,類別管理,名片管理,生日提示,用于各項(xiàng)操作。把菜單添加到菜單條中。然后把各菜單中的菜單項(xiàng)添加到菜單中,并聲明監(jiān)視器。顯示
27、類別信息和名片信息的分塊,分別設(shè)置成模塊pnlBtn和pnlAll。他們分別寫成類TypeDialog和CardDialog,在類中分別把Label,Button,Txtfield等元組添加進(jìn)去。其他窗口,例如進(jìn)行類別管理時(shí)的要彈出的窗口,查詢名片信息的窗口等,都是類似的寫法。</p><p><b> 5.3.2監(jiān)視器</b></p><p> 用戶管理和類別管
28、理需要調(diào)用到另一個(gè)彈出窗口,所以聲明addActionListener(new mnuHandler(this)),mnuHandler()中并沒(méi)有具體的操作,只是提供一個(gè)該操作所需的窗口,并把需要處理的數(shù)據(jù)轉(zhuǎn)入到SelectFrameHandler(),該監(jiān)視器再調(diào)用DatabaseOperate()類中的具體的數(shù)據(jù)處理的方法。名片信息管理中,查詢和新建操作與上面的類似,也是利用mnuHandler()來(lái)提供一個(gè)窗口,最終把需要的操作
29、送入SelectFrameHandler();刪除和修改直接調(diào)用SelectFrameHandler()監(jiān)視器。監(jiān)視器只是把外部的用戶動(dòng)作提供給系統(tǒng)處理,并沒(méi)有對(duì)數(shù)據(jù)的直接操作,對(duì)數(shù)據(jù)的操作都集中在DatabaseOperate()類中。</p><p><b> 5.3.3數(shù)據(jù)操作</b></p><p> 對(duì)三張表進(jìn)行查找,更新,刪除,插入操作。首先調(diào)用Con
30、nection,然后調(diào)用statement執(zhí)行語(yǔ)句,ResultSet存儲(chǔ)操作結(jié)果。另外,為了方便數(shù)據(jù)的設(shè)置和返回,需要建立兩個(gè)類typemodel,cardmodel,而Allmodel可以返回這兩個(gè)類的實(shí)體。</p><p> 對(duì)用戶表的操作分為查找和更新,查找即在登錄時(shí)校驗(yàn)用戶輸入的ID在usertable 表中所對(duì)應(yīng)的密碼是否與輸入的密碼一致,可以用以下語(yǔ)句實(shí)現(xiàn): select * from usert
31、able where username='" +um.getUsername() + "'。更新即對(duì)密碼進(jìn)行修改,用以下語(yǔ)句實(shí)現(xiàn):update usertable set password='" + um.getPassword() +"' where username='" + um.getUsername() + "'。對(duì)用戶
32、表的操作體現(xiàn)在主界面菜單欄的第一欄,調(diào)用監(jiān)視器mnuHandler()。</p><p> 對(duì)名片分類表的操作分為更新、刪除和插入。更新可用以下代碼實(shí)現(xiàn)update typetable set tpname=? where tpid=?;刪除可用以下代碼實(shí)現(xiàn):delete typetable where tpid=?;插入可用以下代碼實(shí)現(xiàn):insert into typetable(tpname) values
33、 (?)。</p><p> 對(duì)名片表的操作復(fù)雜的多,于是名片的操作放在兩個(gè)監(jiān)視器中SelectFrameHandler()和muHandler()中。對(duì)名片表的操作可分為查找,插入,更新,刪除。SQL語(yǔ)句與對(duì)其他兩張表的操作類似。查找可以用以下代碼實(shí)現(xiàn):selecttpid,frdname,sex,birthday,depart,power,homephone,officephone,mobil,addres
34、s,number,email from cardtable where carid=" +car + "。插入可以用以下代碼實(shí)現(xiàn):insert into cardtable(carid,tpid,frdname,sex,birthday,depart,power,homephone,officephone,mobil,address,number,email)values(?,?,?,?,?,?,?,?,?,?,?,
35、?,?)。</p><p> 更新和刪除操作直接放在SelectFrameHandler()中完成。對(duì)名片分類表的操作體現(xiàn)在主界面菜單欄的第三欄,調(diào)用監(jiān)視器muHandler()或者直接調(diào)用SelectFrameHandler()。</p><p><b> 5.4程序流程圖</b></p><p> 描述名片管理系統(tǒng)的程序流程圖如圖5-
36、1所示:</p><p> 圖5-1 程序流程圖</p><p><b> 5.5數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p> 該實(shí)例實(shí)現(xiàn)的是簡(jiǎn)單的名片管理功能,因此系統(tǒng)后臺(tái)數(shù)據(jù)庫(kù)比較簡(jiǎn)單,只有名片表、類別表、用戶表3個(gè)數(shù)據(jù)表。</p><p><b> 表3-3 名片表</b></p>
37、<p><b> 表3-4 類別表</b></p><p><b> 表3-5 用戶表</b></p><p><b> 6.實(shí)現(xiàn)</b></p><p><b> 6.1用戶登錄界面</b></p><p><b> 主
38、要代碼如下:</b></p><p> import javax.swing.JFrame;</p><p> import javax.swing.JLabel;</p><p> import java.awt.*;</p><p> import javax.swing.JTextField;</p>
39、<p> import javax.swing.JPasswordField;</p><p> import javax.swing.JButton;</p><p> import java.awt.Rectangle;</p><p> public class LoginFrame extends JFrame {</p>&
40、lt;p> public LoginFrame() {</p><p><b> try {</b></p><p><b> jbInit();</b></p><p> } catch (Exception ex) {</p><p> ex.printStackTrace();
41、</p><p><b> }</b></p><p><b> }</b></p><p> private void jbInit() throws Exception {</p><p> this.getContentPane().setLayout(null);</p>
42、<p> setSize(250,200);</p><p> this.setTitle("登錄");</p><p> lblTitle.setFont(new java.awt.Font("Dialog", Font.BOLD, 20));</p><p> lblTitle.setText(&qu
43、ot;用戶登錄");</p><p> lblTitle.setBounds(new Rectangle(82, 8, 93, 34));</p><p> lblUserName.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));</p><p> lblUserName.
44、setText("用 戶 名:");</p><p> lblUserName.setBounds(new Rectangle(30, 44, 83, 19));</p><p> txtUserName.setText("");</p><p> txtUserName.setBounds(new Rectangle(
45、112, 42, 105, 22));</p><p> psUserPassword.setBounds(new Rectangle(112, 68, 106, 22));</p><p> btnLogin.setBounds(new Rectangle(41, 95, 73, 25));</p><p> btnLogin.setFont(new jav
46、a.awt.Font("Dialog", Font.PLAIN, 15));</p><p> btnLogin.setText("登錄");</p><p> btnLogin.addActionListener(lh);</p><p> lh.lf=this;</p><p> btnRe
47、s.setBounds(new Rectangle(135, 95, 73, 25));</p><p> btnRes.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));</p><p> btnRes.setText("取消");</p><p> btnRes
48、.addActionListener(lh);</p><p> lblErr.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));</p><p> lblErr.setForeground(Color.red);</p><p> lblErr.setText(""
49、;);</p><p> lblErr.setBounds(new Rectangle(31, 123, 191, 19));</p><p> lblPassword.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));</p><p> lblPassword.setText(&qu
50、ot;密碼:");</p><p> lblPassword.setBounds(new Rectangle(30, 70, 83, 19));</p><p> this.getContentPane().add(lblTitle);</p><p> this.getContentPane().add(lblUserName);</p>
51、;<p> this.getContentPane().add(lblPassword);</p><p> this.getContentPane().add(txtUserName);</p><p> this.getContentPane().add(psUserPassword);</p><p> this.getContentPa
52、ne().add(btnLogin);</p><p> this.getContentPane().add(btnRes);</p><p> this.getContentPane().add(lblErr);</p><p><b> }</b></p><p> LoginHandler lh=new L
53、oginHandler();</p><p> JLabel lblTitle = new JLabel();</p><p> JLabel lblPassword = new JLabel();</p><p> JLabel lblUserName = new JLabel();</p><p> JTextField txtU
54、serName = new JTextField();</p><p> JPasswordField psUserPassword = new JPasswordField();</p><p> JButton btnLogin = new JButton();</p><p> JButton btnRes = new JButton();</p&
55、gt;<p> JLabel lblErr = new JLabel();</p><p><b> }</b></p><p> 6.2名片管理系統(tǒng)主窗體</p><p><b> 主要代碼如下:</b></p><p> package card;</p>
56、<p> import javax.swing.JFrame;</p><p> import javax.swing.JLabel;</p><p> import java.awt.*;</p><p> import javax.swing.JScrollPane;</p><p> import javax.swi
57、ng.JTable;</p><p> import javax.swing.JTextField;</p><p> import javax.swing.JButton;</p><p> import javax.swing.table.DefaultTableModel;</p><p> import javax.swing
58、.JPanel;</p><p> import javax.swing.JTree;</p><p> import javax.swing.BorderFactory;</p><p> import javax.swing.border.Border;</p><p> import javax.swing.JComboBox;
59、</p><p> import javax.swing.JMenuBar;</p><p> import javax.swing.JMenu;</p><p> import javax.swing.JMenuItem;</p><p> import javax.swing.tree.DefaultMutableTreeNode
60、;</p><p> import javax.swing.tree.DefaultTreeModel;</p><p> public class SelectFrame extends JFrame {</p><p> public SelectFrame() {</p><p><b> try {</b>
61、;</p><p><b> jbInit();</b></p><p> } catch (Exception exception) {</p><p> exception.printStackTrace();</p><p><b> }</b></p><p>
62、;<b> }</b></p><p> private void jbInit() throws Exception {</p><p> scrpnlInfo.setSize(100,300);</p><p> getContentPane().setLayout(borderLayout1);</p><p&
63、gt; lblTitle.setFont(new java.awt.Font("Dialog", Font.BOLD, 21));</p><p> lblTitle.setText("個(gè)人名片信息管理系統(tǒng)");</p><p> tabInfo.setFont(new java.awt.Font("Dialog", Fon
64、t.PLAIN, 15));</p><p> this.setJMenuBar(mnuBar);</p><p> this.setState(Frame.ICONIFIED);</p><p> this.setTitle("個(gè)人名片信息管理系統(tǒng)");</p><p> pnlAll.setLayout(bor
65、derLayout2);</p><p> root = new DefaultMutableTreeNode("類別");</p><p> DefaultTreeModel dtm=new DefaultTreeModel(root);</p><p> treType = new JTree(dtm);</p><
66、p> treType.addTreeSelectionListener(new SelectFrameHandler(this));</p><p> borderLayout1.setHgap(0);</p><p> borderLayout1.setVgap(0);</p><p> borderLayout2.setHgap(0);</p
67、><p> borderLayout2.setVgap(0);</p><p> lblType.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));</p><p> lblType.setText("請(qǐng)選擇查詢類別:");</p><p>
68、pnlBtn.setBorder(border2);</p><p> pnlTitle.setBorder(border1);</p><p> lblIn.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));</p><p> lblIn.setText("包含:"
69、;);</p><p> btnSelect.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));</p><p> btnSelect.setText("查詢");</p><p> btnSelect.setActionCommand("select&q
70、uot;);</p><p> btnSelect.addActionListener(new SelectFrameHandler(this));</p><p> btnEdit.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));</p><p> btnEdit.setText(
71、"編輯");</p><p> btnEdit.setActionCommand("edit");</p><p> btnEdit.addActionListener(new SelectFrameHandler(this));</p><p> btnDel.setFont(new java.awt.Font(&qu
72、ot;Dialog", Font.PLAIN, 15));</p><p> btnDel.setText("刪除");</p><p> btnDel.addActionListener(new SelectFrameHandler(this));</p><p> btnDel.setActionCommand("d
73、elete");</p><p> mnuUser.setText("用戶管理");</p><p> mnuPwd.setText("修改密碼");</p><p> mnuPwd.setActionCommand("pwd");</p><p> mnuPwd.
74、addActionListener(new mnuHandler(this));</p><p> menExit.setText("退出");</p><p> menExit.setActionCommand("exit");</p><p> menExit.addActionListener(new mnuHan
75、dler(this));</p><p> mnuType.setText("類別管理");</p><p> mnuCard.setText("名片管理");</p><p> mnuDate.setText("生日提示");</p><p> mnuAddtype.set
76、Text("增加類別");</p><p> mnuAddtype.setActionCommand("addtype");</p><p> mnuAddtype.addActionListener(new mnuHandler(this));</p><p> mnuUpdateType.setText("
77、修改類別");</p><p> mnuUpdateType.setActionCommand("updatetype");</p><p> mnuUpdateType.addActionListener(new mnuHandler(this));</p><p> mnuDelType.setText("刪除類別&
78、quot;);</p><p> mnuDelType.setActionCommand("deltype");</p><p> mnuDelType.addActionListener(new mnuHandler(this));</p><p> mnuAddCard.setText("增加名片");</p&
79、gt;<p> mnuAddCard.setActionCommand("addcard");</p><p> mnuAddCard.addActionListener(new mnuHandler(this));</p><p> mnuUpdateCard.setText("多項(xiàng)查詢");</p><p&
80、gt; mnuUpdateCard.setActionCommand("select");</p><p> mnuUpdateCard.addActionListener(new mnuHandler(this));</p><p> mnudeleteCard.setText("刪除名片");</p><p> m
81、nudeleteCard.setActionCommand("delete");</p><p> mnudeleteCard.addActionListener(new SelectFrameHandler(this));</p><p> mnueditCard.setText("修改名片");</p><p> m
82、nueditCard.setActionCommand("edit");</p><p> mnueditCard.addActionListener(new SelectFrameHandler(this));</p><p> mnuWho.setText("今天誰(shuí)生日");</p><p> mnuWho.setA
83、ctionCommand("who");</p><p> mnuWho.addActionListener(new mnuHandler(this));</p><p> pnlAll.add(scrpnlTree, java.awt.BorderLayout.WEST);</p><p> pnlAll.add(scrpnlInfo,
84、java.awt.BorderLayout.CENTER);</p><p> pnlTitle.add(lblTitle);</p><p> this.getContentPane().add(pnlBtn, java.awt.BorderLayout.SOUTH);</p><p> this.getContentPane().add(pnlAll, j
85、ava.awt.BorderLayout.CENTER);</p><p> scrpnlInfo.getViewport().add(tabInfo);</p><p> scrpnlTree.getViewport().add(treType);</p><p> this.getContentPane().add(pnlTitle, java.awt.B
86、orderLayout.NORTH);</p><p> mnuBar.add(mnuUser);</p><p> mnuBar.add(mnuType);</p><p> mnuBar.add(mnuCard);</p><p> mnuBar.add(mnuDate);</p><p> mnuUse
87、r.add(mnuPwd);</p><p> mnuUser.add(menExit);</p><p> mnuType.add(mnuAddtype);</p><p> mnuType.add(mnuUpdateType);</p><p> mnuType.add(mnuDelType);</p><p&
88、gt; mnuCard.add(mnuAddCard);</p><p> mnuCard.add(mnuUpdateCard);</p><p> mnuCard.add(mnudeleteCard);</p><p> mnuCard.add(mnueditCard);</p><p> mnuDate.add(mnuWho);
89、</p><p> Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();</p><p> this.setBounds(0, 0, screenSize.width, screenSize.height);</p><p> this.setExtendedState(this
90、.MAXIMIZED_BOTH);</p><p> this.setVisible(true);</p><p> this.validate();</p><p><b> }</b></p><p> JLabel lblTitle = new JLabel();</p><p>
91、 JScrollPane scrpnlInfo = new JScrollPane();</p><p> Object arrInfo[][] = {};</p><p> Object arrField[] = {"類別", "姓名", "性別", "生日", "工作單位", &qu
92、ot;職務(wù)", "家庭電話", "辦公電話","手機(jī)", "家庭地址", "郵編", "電子郵件"};</p><p> DefaultTableModel tm = new DefaultTableModel(arrInfo, arrField);</p><p
93、> JTable tabInfo = new JTable(tm);</p><p> BorderLayout borderLayout1 = new BorderLayout();</p><p> JPanel pnlTitle = new JPanel();</p><p> JScrollPane scrpnlTree = new JScro
94、llPane();</p><p> JTree treType;</p><p> JPanel pnlAll = new JPanel();</p><p> BorderLayout borderLayout2 = new BorderLayout();</p><p> JPanel pnlBtn = new JPanel()
95、;</p><p> JLabel lblType = new JLabel();</p><p> Border border1 = BorderFactory.createEmptyBorder(20, 0, 20, 0);</p><p> Border border2 = BorderFactory.createEmptyBorder(40, 0, 4
96、0, 0);</p><p> JComboBox cboType = new JComboBox();</p><p> JLabel lblIn = new JLabel();</p><p> JTextField txtIn = new JTextField();</p><p> JButton btnSelect = ne
97、w JButton();</p><p> JButton btnEdit = new JButton();</p><p> JButton btnDel = new JButton();</p><p> JMenuBar mnuBar = new JMenuBar();</p><p> JMenu mnuUser = new
98、JMenu();</p><p> JMenuItem mnuPwd = new JMenuItem(); </p><p> JButton btncardDel = new JButton(); </p><p> JMenuItem menExit = new JMenuItem();</p><p> JMenu mnuTy
99、pe = new JMenu();</p><p> JMenu mnuCard = new JMenu();</p><p> JMenu mnuDate = new JMenu();</p><p> JMenuItem mnuAddtype = new JMenuItem();</p><p> JMenuItem mnuUpd
100、ateType = new JMenuItem();</p><p> JMenuItem mnuDelType = new JMenuItem();</p><p> JMenuItem mnuAddCard = new JMenuItem();</p><p> JMenuItem mnuUpdateCard = new JMenuItem();</
101、p><p> JMenuItem mnudeleteCard = new JMenuItem();</p><p> JMenuItem mnueditCard = new JMenuItem();</p><p> JMenuItem mnuWho = new JMenuItem();</p><p> DefaultMutableTr
102、eeNode root;</p><p><b> }</b></p><p> 6.3監(jiān)視器mnuHandler()和SelectFrameHandler()</p><p> mnuHandler()代碼如下:</p><p> package card;</p><p> impo
103、rt java.awt.event.ActionListener;</p><p> import java.awt.event.ActionEvent;</p><p> public class mnuHandler implements ActionListener {</p><p> SelectFrame sf;</p><p&
104、gt; UserManagerDialog ud;</p><p> typeDialog td;</p><p> cardDialog cd;</p><p> SelectDialog sd;</p><p> public mnuHandler(SelectFrame f) {</p><p> t
105、his.sf = f;</p><p><b> }</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> if (e.getActionCommand() == "pwd") { //修改密碼</p><p>
106、ud = new UserManagerDialog();</p><p> ud.setBounds(400, 200, 300, 300);</p><p> ud.setVisible(true);</p><p><b> }</b></p><p> if (e.getActionCommand() =
107、= "exit") { //退出</p><p> System.exit(0);</p><p><b> }</b></p><p> if (e.getActionCommand() == "addtype") { //增加類別</p><p> td = new t
108、ypeDialog(sf, "增加類別", true);</p><p> td.btndele.setVisible(false);</p><p> td.btnupdate.setVisible(false);</p><p> td.setBounds(350, 150, 400, 400);</p><p>
109、; td.setVisible(true);</p><p> new SelectFrameHandler(sf);</p><p><b> }</b></p><p> if (e.getActionCommand() == "updatetype") { //修改類別</p><p>
110、 td = new typeDialog();</p><p> td.btndele.setVisible(false);</p><p> td.btncreate.setVisible(false);</p><p> td.setBounds(350, 150, 400, 400);</p><p> td.setVisib
111、le(true);</p><p> new SelectFrameHandler(sf);</p><p><b> }</b></p><p> if (e.getActionCommand() == "deltype") {</p><p> td = new typeDialog();
112、</p><p> td.btncreate.setVisible(false);</p><p> td.btnupdate.setVisible(false);</p><p> td.setBounds(350, 150, 400, 400);</p><p> td.setVisible(true);</p>&
113、lt;p> new SelectFrameHandler(sf);</p><p><b> }</b></p><p> if (e.getActionCommand() == "addcard") {</p><p> cd = new cardDialog();</p><p>
114、 cd.btnupdate.setVisible(false);</p><p> cd.btnselect.setVisible(false);</p><p> cd.setBounds(350, 150, 550, 550);</p><p> cd.setVisible(true);</p><p> new SelectFr
115、ameHandler(sf);</p><p><b> }</b></p><p> if (e.getActionCommand() == "select") {</p><p> sd = new SelectDialog(sf, "多項(xiàng)查詢", true);</p><p
116、> sd.setBounds(350, 150, 550, 550);</p><p> sd.setVisible(true);</p><p> SelectFrameHandler sfh = new SelectFrameHandler(sf);</p><p> sfh.updateinfo(Static.getSQL());</p&g
117、t;<p><b> }</b></p><p> if (e.getActionCommand() == "who") {</p><p> Static.getTodayBirthdayDialog();</p><p><b> }</b></p><p&
118、gt;<b> }</b></p><p><b> }</b></p><p> SelectFrameHandler()代碼如下:</p><p> package card;</p><p> import java.awt.event.ActionListener;</p&g
119、t;<p> import java.awt.event.ActionEvent;</p><p> import java.util.ArrayList;</p><p> import javax.swing.table.DefaultTableModel;</p><p> import javax.swing.JOptionPane;&
120、lt;/p><p> import javax.swing.event.TreeSelectionListener;</p><p> import javax.swing.event.TreeSelectionEvent;</p><p> import javax.swing.tree.DefaultMutableTreeNode;</p>&l
121、t;p> import javax.swing.tree.DefaultTreeModel;</p><p> public class SelectFrameHandler implements ActionListener,</p><p> TreeSelectionListener {</p><p> SelectFrame sf;</
122、p><p> DatabaseOperate dbo = new DatabaseOperate();</p><p> ArrayList al;</p><p> cardDialog cd;</p><p> updatecardDialog ud;</p><p> public SelectFrameH
123、andler(SelectFrame f) {</p><p> this.sf = f;</p><p> updateinfo("");</p><p> updateType();</p><p><b> }</b></p><p> public void
124、actionPerformed(ActionEvent e) {</p><p> if (e.getActionCommand() == "select") {</p><p> choicSql();</p><p><b> }</b></p><p> if (e.getActionC
125、ommand() == "delete") {</p><p> int intRow = sf.tabInfo.getSelectedRow();</p><p> if (intRow == -1) {</p><p> JOptionPane.showMessageDialog(sf, "請(qǐng)先選擇要?jiǎng)h除的名片!",
126、 "錯(cuò)誤",</p><p> JOptionPane.ERROR_MESSAGE);</p><p><b> return;</b></p><p><b> }</b></p><p> // String abc=sf.tm.getValueAt(int
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計(jì)---名片管理系統(tǒng)設(shè)計(jì)
- 課程設(shè)計(jì)---名片管理系統(tǒng)設(shè)計(jì).doc
- c語(yǔ)言課程設(shè)計(jì)-手機(jī)名片管理系統(tǒng)
- 《面向?qū)ο笳n程設(shè)計(jì)》課程設(shè)計(jì)---媒體管理系統(tǒng)
- 課程設(shè)計(jì)---課程設(shè)計(jì)圖書管理系統(tǒng)
- c課程設(shè)計(jì)---圖書管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)-訂單式銷售管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生管理系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)
- web課程設(shè)計(jì)--課程管理系統(tǒng)
- 課程設(shè)計(jì)-庫(kù)存管理系統(tǒng)設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)-酒店管理系統(tǒng)課程設(shè)計(jì)
- 倉(cāng)庫(kù)管理系統(tǒng)課程設(shè)計(jì)
- 選課管理系統(tǒng)課程設(shè)計(jì)
- 倉(cāng)庫(kù)管理系統(tǒng)課程設(shè)計(jì)
- 酒店管理系統(tǒng)課程設(shè)計(jì)
- 教務(wù)管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)--超市管理系統(tǒng)
- 賓館管理系統(tǒng)課程設(shè)計(jì)
- 試卷管理系統(tǒng)(課程設(shè)計(jì))
- 學(xué)籍管理系統(tǒng) 課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論