2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  軟件工程綜合實(shí)踐報告</p><p><b>  名片管理系統(tǒng)設(shè)計(jì)</b></p><p><b>  目錄</b></p><p><b>  1 問題定義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ū)動和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ù)庫設(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.測試31</b></p><p>  7.1修改密碼模塊測試31</p><p>  7.2退出模塊測試32</p><p>  7.3增加類別模塊測試32</p><p>  7.4修改類別模塊測試33</p><p>  7.5刪

8、除類別模塊測試34</p><p>  7.6插入名片模塊測試35</p><p>  7.7多項(xiàng)查詢模塊測試36</p><p>  7.8修改名片模塊測試38</p><p>  7.9刪除名片模塊測試38</p><p>  7.10生日提示模塊測試39</p><p><

9、;b>  8.個人小結(jié)39</b></p><p><b>  參考文獻(xiàn)40</b></p><p><b>  1 問題定義</b></p><p>  項(xiàng)目名稱:名片管理系統(tǒng)</p><p>  完成的功能:按客戶編號、姓名或者職業(yè)查詢客戶的基本信息;可以添加,修改或刪除客

10、戶信息;按客戶信息編號查詢名片的基本信息;對名片信息進(jìn)行添加、刪除、修改。</p><p>  需要處理的基本數(shù)據(jù):個人信息:編號、姓名、職業(yè)、聯(lián)系方式等;名片信息:名片號等。</p><p><b>  2 可行性研究</b></p><p>  2.1 技術(shù)可行性:</p><p>  本設(shè)計(jì)“名片管理系統(tǒng)”是為各類

11、人員開發(fā)的信息管理系統(tǒng)。通過兩個星期的學(xué)習(xí),對開發(fā)管理信息系統(tǒng)又有了新的認(rèn)識。使自己在開發(fā)管理信息系統(tǒng)方面的技術(shù)更加成熟。由于本設(shè)計(jì)最重要體現(xiàn)的是實(shí)用性,所以通過大量的社會調(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)辦公自動化,減少人力投資和辦公費(fèi)用,極大地提高辦公效率。</p><p>  2.3 操作可行性:</p><p>  本軟件的用戶對象是信息管理的工作人員,由于本軟件要設(shè)計(jì)成友好的界面,寫出詳細(xì)的使用說明,用戶只需懂得簡單的計(jì)算機(jī)操作知識,就能自由應(yīng)用本軟件。</

13、p><p>  所以從以上幾個方面的分析來看,開發(fā)本軟件是完全可行的。</p><p><b>  3 需求分析</b></p><p>  3.1系統(tǒng)功能需求分析</p><p>  系統(tǒng)開發(fā)的總體任務(wù)是各種信息的系統(tǒng)化、規(guī)范化和自動化。</p><p><b>  主要完成的功能:<

14、;/b></p><p>  按客戶編號、姓名或者職業(yè)查詢客戶的基本信息;</p><p>  可以添加,修改或刪除客戶信息;</p><p>  按客戶信息編號查詢名片的基本信息;</p><p>  對名片信息進(jìn)行添加、刪除、修改、查詢。</p><p>  3.2系統(tǒng)性能需求分析</p>&l

15、t;p><b> ?。?)數(shù)據(jù)精確度</b></p><p>  進(jìn)行操作請求時,如:名片添加、名片刪除、名片修改、名片查詢時,應(yīng)保證輸入數(shù)據(jù)與數(shù)據(jù)庫數(shù)據(jù)的相匹配性。而在滿足用戶請求時,系統(tǒng)應(yīng)保證所響應(yīng)數(shù)據(jù)的正確性和全面性。</p><p><b> ?。?)時間特性</b></p><p>  為滿足用戶高效要求,

16、數(shù)據(jù)的響應(yīng)時間、更新處理時間、數(shù)據(jù)轉(zhuǎn)換與傳輸時間、運(yùn)行時間都應(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í)體有:名片存儲系統(tǒng)(名片號),用戶個人信息(編號、姓名、職業(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)過需求分析階段的工作,系統(tǒng)必須“做什么”已經(jīng)清楚了,現(xiàn)在是決定“怎樣做”的時候了。總體設(shè)計(jì)的基本目的就是回答“概括的說,系統(tǒng)應(yīng)該如何實(shí)現(xiàn)?”這個問題,因此,總體設(shè)計(jì)又稱為概要設(shè)計(jì)或初步設(shè)計(jì)。總體設(shè)計(jì)的重要任務(wù)是設(shè)計(jì)軟件的結(jié)構(gòu),也就是要確定系統(tǒng)中每個程序由哪些模塊組成,以及這些模塊相互間的關(guān)系。</p><p>  通常程序中的一個

19、模塊完成一個恰當(dāng)?shù)淖庸δ?。?yīng)該把模塊組成良好的層次系統(tǒng),頂層模塊調(diào)用它的下層模塊以實(shí)現(xiàn)程序的完整功能,每個下層模塊再調(diào)用更下層的模塊,從而完成程序的一個子功能,最下層的模塊完成最具體的功能。軟件結(jié)構(gòu)(即由模塊組成的層次系統(tǒng))可以用層次圖或結(jié)構(gòu)圖來描述。</p><p><b>  4.1層次圖</b></p><p>  對需求分析得到各項(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)工具。它的基本思想是用圖形符號以黑盒子形式描繪組成系統(tǒng)的每個部件。系統(tǒng)流程圖表達(dá)的是數(shù)據(jù)在系統(tǒng)各部件之間流動的情況,而不是對數(shù)據(jù)進(jìn)行加工處

21、理的控制過程,因此盡管系統(tǒng)流程圖的某些符號和程序流程圖的符號形式相同,但是它卻是物理數(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>  分類(類別編號,類別)</p><p>  名片(卡號,姓名,性別,生日,工作單位,職務(wù),家庭電話,辦公電話,移動電話,家庭地址,郵編,電子郵件)</p><p><b>  5.詳細(xì)設(shè)計(jì)</b></p><p>  詳細(xì)設(shè)計(jì)階段的根本目標(biāo)是確定應(yīng)該怎樣具體地實(shí)現(xiàn)所要求的系統(tǒng),也就是說,經(jīng)過這個階段的設(shè)計(jì)工作,應(yīng)該得出對目標(biāo)系

23、統(tǒng)的精確描述,從而在編碼階段可以把這個描述直接翻譯成用某種程序設(shè)計(jì)語言書寫的程序。詳細(xì)設(shè)計(jì)的結(jié)果基本上決定了最終的程序代碼的質(zhì)量。</p><p>  從前面得知,本系統(tǒng)是JAVA在與數(shù)據(jù)庫連接的基礎(chǔ)上對數(shù)據(jù)進(jìn)行的一系列操作。JAVA編寫的名片管理系統(tǒng)屬于前臺應(yīng)用,SQL SERVER數(shù)據(jù)庫管理系統(tǒng)作為提供后臺數(shù)據(jù)的平臺。 </p><p><b>  5.1建表<

24、/b></p><p>  后臺數(shù)據(jù)庫的建立可以很容易根據(jù)前面的數(shù)據(jù)庫設(shè)計(jì)分析實(shí)現(xiàn),即建立三張表,分別存儲用戶登錄時所需數(shù)據(jù),名片信息和名片的分類信息。</p><p>  5.2加載驅(qū)動和URL</p><p>  JAVA連接SQL SERVER2005本程序采用ODBC數(shù)據(jù)源的連接方法。加載驅(qū)動和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、。他們相互隔離又相互配合來完成各種操作。</p><p><b>  5.3.1視圖窗口</b></p><p>  作為系統(tǒng)的主界面,采用BorderLayout的布局方式,需要包含菜單、現(xiàn)實(shí)名片信息的窗口和名片分類的窗口。新建四個菜單:用戶管理,類別管理,名片管理,生日提示,用于各項(xiàng)操作。把菜單添加到菜單條中。然后把各菜單中的菜單項(xiàng)添加到菜單中,并聲明監(jiān)視器。顯示

27、類別信息和名片信息的分塊,分別設(shè)置成模塊pnlBtn和pnlAll。他們分別寫成類TypeDialog和CardDialog,在類中分別把Label,Button,Txtfield等元組添加進(jìn)去。其他窗口,例如進(jìn)行類別管理時的要彈出的窗口,查詢名片信息的窗口等,都是類似的寫法。</p><p><b>  5.3.2監(jiān)視器</b></p><p>  用戶管理和類別管

28、理需要調(diào)用到另一個彈出窗口,所以聲明addActionListener(new mnuHandler(this)),mnuHandler()中并沒有具體的操作,只是提供一個該操作所需的窗口,并把需要處理的數(shù)據(jù)轉(zhuǎn)入到SelectFrameHandler(),該監(jiān)視器再調(diào)用DatabaseOperate()類中的具體的數(shù)據(jù)處理的方法。名片信息管理中,查詢和新建操作與上面的類似,也是利用mnuHandler()來提供一個窗口,最終把需要的操作

29、送入SelectFrameHandler();刪除和修改直接調(diào)用SelectFrameHandler()監(jiān)視器。監(jiān)視器只是把外部的用戶動作提供給系統(tǒng)處理,并沒有對數(shù)據(jù)的直接操作,對數(shù)據(jù)的操作都集中在DatabaseOperate()類中。</p><p><b>  5.3.3數(shù)據(jù)操作</b></p><p>  對三張表進(jìn)行查找,更新,刪除,插入操作。首先調(diào)用Con

30、nection,然后調(diào)用statement執(zhí)行語句,ResultSet存儲操作結(jié)果。另外,為了方便數(shù)據(jù)的設(shè)置和返回,需要建立兩個類typemodel,cardmodel,而Allmodel可以返回這兩個類的實(shí)體。</p><p>  對用戶表的操作分為查找和更新,查找即在登錄時校驗(yàn)用戶輸入的ID在usertable 表中所對應(yīng)的密碼是否與輸入的密碼一致,可以用以下語句實(shí)現(xiàn): select * from usert

31、able where username='" +um.getUsername() + "'。更新即對密碼進(jìn)行修改,用以下語句實(shí)現(xiàn):update usertable set password='" + um.getPassword() +"' where username='" + um.getUsername() + "'。對用戶

32、表的操作體現(xiàn)在主界面菜單欄的第一欄,調(diào)用監(jiān)視器mnuHandler()。</p><p>  對名片分類表的操作分為更新、刪除和插入。更新可用以下代碼實(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>  對名片表的操作復(fù)雜的多,于是名片的操作放在兩個監(jiān)視器中SelectFrameHandler()和muHandler()中。對名片表的操作可分為查找,插入,更新,刪除。SQL語句與對其他兩張表的操作類似。查找可以用以下代碼實(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()中完成。對名片分類表的操作體現(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ù)庫設(shè)計(jì)</b></p><p>  該實(shí)例實(shí)現(xiàn)的是簡單的名片管理功能,因此系統(tǒng)后臺數(shù)據(jù)庫比較簡單,只有名片表、類別表、用戶表3個數(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("個人名片信息管理系統(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("個人名片信息管理系統(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("請選擇查詢類別:");</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("今天誰生日");</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, "請先選擇要刪除的名片!",

126、 "錯誤",</p><p>  JOptionPane.ERROR_MESSAGE);</p><p><b>  return;</b></p><p><b>  }</b></p><p>  // String abc=sf.tm.getValueAt(int

溫馨提示

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

評論

0/150

提交評論