java課程設(shè)計(jì)----圖書(shū)館管理系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩19頁(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、<p>  圖書(shū)館管理系統(tǒng)課程設(shè)計(jì)報(bào)告</p><p><b>  1目錄</b></p><p>  引言----------------------------------------------------------------2</p><p>  正文------------------------------------

2、----------------------------3</p><p>  結(jié)論和建議----------------------------------------------------------4</p><p>  致謝----------------------------------------------------------------5</p>&l

3、t;p>  參考文獻(xiàn)------------------------------------------------------------5</p><p>  附錄------------------------------------------------------------5—20</p><p><b>  2 引 言</b></p>

4、<p>  當(dāng)今時(shí)代是飛速發(fā)展的信息時(shí)代。在各行各業(yè)中離不開(kāi)信息處理,這正是計(jì)算機(jī)被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。計(jì)算機(jī)的最大好處在于利用它能夠進(jìn)行信息管理。使用計(jì)算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。尤其對(duì)于復(fù)雜的信息管理,計(jì)算機(jī)能夠充分發(fā)揮它的優(yōu)越性。計(jì)算機(jī)進(jìn)行信息管理與信息管理系統(tǒng)的開(kāi)發(fā)密切相關(guān),系統(tǒng)的開(kāi)發(fā)是系統(tǒng)管理的前提。圖書(shū)管理系統(tǒng)就是為了管理好圖書(shū)館信息而設(shè)計(jì)的。</p>

5、<p>  圖書(shū)館作為一種信息資源的集散地,圖書(shū)和用戶借閱資料繁多,包含很多的信息數(shù)據(jù)的管理,現(xiàn)今,有很多的圖書(shū)館都是初步開(kāi)始使用,甚至尚未使用計(jì)算機(jī)進(jìn)行信息管理。根據(jù)調(diào)查得知,他們以前對(duì)信息管理的主要方式是基于文本、表格等紙介質(zhì)的手工處理,對(duì)于圖書(shū)借閱情況(如借書(shū)天數(shù)、超過(guò)限定借書(shū)時(shí)間的天數(shù))的統(tǒng)計(jì)和核實(shí)等往往采用對(duì)借書(shū)卡的人工檢查進(jìn)行,對(duì)借閱者的借閱權(quán)限、以及借閱天數(shù)等用人工計(jì)算、手抄進(jìn)行。數(shù)據(jù)信息處理工作量大,容易出錯(cuò)

6、;由于數(shù)據(jù)繁多,容易丟失,且不易查找??偟膩?lái)說(shuō),缺乏系統(tǒng),規(guī)范的信息管理手段。盡管有的圖書(shū)館有計(jì)算機(jī),但是尚未用于信息管理,沒(méi)有發(fā)揮它的效力,資源閑置比較突出,這就是管理信息系統(tǒng)的開(kāi)發(fā)的基本環(huán)境。</p><p>  數(shù)據(jù)處理手工操作,工作量大,出錯(cuò)率高,出錯(cuò)后不易更改。圖書(shū)館采取手工方式對(duì)圖書(shū)借閱情況進(jìn)行人工管理,由于信息比較多,圖書(shū)借閱信息的管理工作混亂而又復(fù)雜;一般借閱情況是記錄在借書(shū)證上,圖書(shū)的數(shù)目和內(nèi)容

7、記錄在文件中,圖書(shū)館的工作人員和管理員也只是當(dāng)時(shí)對(duì)它比較清楚,時(shí)間一長(zhǎng),如再要進(jìn)行查詢(xún),就得在眾多的資料中翻閱、查找了,造成查詢(xún)費(fèi)時(shí)、費(fèi)力。如要對(duì)很長(zhǎng)時(shí)間以前的圖書(shū)進(jìn)行更改就更加困難了。</p><p>  基于這些問(wèn)題,有必要建立一個(gè)圖書(shū)管理系統(tǒng),使圖書(shū)管理工作規(guī)范化,系統(tǒng)化,程序化,避免圖書(shū)管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時(shí)、準(zhǔn)確、有效的查詢(xún)和修改圖書(shū)情況。</p><p&

8、gt;<b>  3正 文</b></p><p><b>  3.1功能需求分析</b></p><p> ?。?)作為學(xué)生對(duì)圖書(shū)管理系統(tǒng)的要求有:</p><p>  1.   能按各種方式(比如書(shū)名、編號(hào)、作者)查詢(xún)圖書(shū)館的藏書(shū)情況。</p><p>  2. &

9、#160; 能夠方便地借閱圖書(shū)、續(xù)借圖書(shū)、歸還圖書(shū)。</p><p>  3.  能夠查詢(xún)自己的基本資料、借閱圖書(shū)情況。</p><p>  4.  能夠熟悉圖書(shū)管理系統(tǒng)的使用。</p><p>  (2)作為圖書(shū)管理員,他們對(duì)圖書(shū)管理系統(tǒng)的要求有:</p><p>  1.   能方便的對(duì)圖書(shū)進(jìn)行錄入

10、登記,注銷(xiāo)陳舊的書(shū)籍。</p><p>  2. 能夠方便地對(duì)新生進(jìn)行登記,或注銷(xiāo)已經(jīng)畢業(yè)的學(xué)生信息(基本信息,借閱信息)。</p><p>  3.   能夠隨時(shí)發(fā)布一些諸如各學(xué)院學(xué)生借閱圖書(shū)超期情況、館內(nèi)藏書(shū)情況、借情況息,以便各學(xué)院能夠隨時(shí)獲知本院學(xué)生的一些借書(shū)信息。</p><p><b>  3.2系統(tǒng)用例分析</b&

11、gt;</p><p>  圖書(shū)管理系統(tǒng)中包含書(shū)籍的采購(gòu)、入庫(kù)、編目、出借、歸還、淘汰等功能,以及讀者信息的管理。本系統(tǒng)對(duì)前期的工作進(jìn)行了簡(jiǎn)化,刪掉了書(shū)籍的采購(gòu)、入庫(kù)、編目等繁瑣的工作,僅對(duì)系統(tǒng)主要部分進(jìn)行分析。為了提高服務(wù)效果,圖書(shū)館系統(tǒng)實(shí)行開(kāi)架閱覽,并為讀者提供客戶端,讀者可以查詢(xún)到館藏書(shū)目和個(gè)人在借圖書(shū)的信息。這項(xiàng)功能也可以通過(guò)互聯(lián)網(wǎng)實(shí)現(xiàn)。圖書(shū)管理員通過(guò)系統(tǒng)記錄圖書(shū)的出借和歸還,以及書(shū)目的維護(hù)和讀者信息的維

12、護(hù)。</p><p><b>  3.3系統(tǒng)模塊分析</b></p><p>  3.3.1新書(shū)入庫(kù)模塊:</p><p>  (1)新書(shū)入庫(kù)界面包括圖書(shū)相關(guān)的屬性:編號(hào)、書(shū)名、作者、類(lèi)別、出版日期、出版社、定價(jià)、數(shù)量、備注等。</p><p>  3.3.2圖書(shū)整理模塊:</p><p> ?。?/p>

13、1)圖書(shū)整理界面包括:圖書(shū)修改刪除、圖書(shū)類(lèi)別編輯</p><p>  圖書(shū)修改刪除界面除了包括圖書(shū)的相關(guān)屬性還包括圖書(shū)修改功能。</p><p>  圖書(shū)類(lèi)別編輯界面包括對(duì)類(lèi)別編號(hào)、類(lèi)別名稱(chēng)進(jìn)行添加、刪除、修改的功模塊。</p><p>  3.3.3辦借書(shū)卡模塊:</p><p>  辦借書(shū)卡界面包括借書(shū)卡編號(hào)、持借書(shū)卡人的姓名、性別、組名

14、、證件號(hào)。</p><p>  3.3.4查詢(xún)模塊:</p><p> ?。?)借閱信息查詢(xún):</p><p>  根據(jù)查詢(xún)方式如 按借書(shū)證號(hào)、按姓名等在文本框中輸入相關(guān)內(nèi)容即可查詢(xún)還可查詢(xún)到期圖書(shū)</p><p>  (2)圖書(shū)信息查詢(xún):</p><p>  查詢(xún)方式有:按書(shū)號(hào)、按書(shū)名、按作者、按類(lèi)別、按出版社。在關(guān)

15、鍵字中輸入相關(guān)內(nèi)容,點(diǎn)擊“開(kāi)始查詢(xún)”按鈕,在DataList中列出查詢(xún)結(jié)果。如果選中“模糊查詢(xún)”可查詢(xún)更多的相關(guān)信息。</p><p> ?。?)用戶信息查詢(xún):</p><p>  查詢(xún)方式有:按借書(shū)證號(hào)、按姓名。在關(guān)鍵字框中輸入借書(shū)證號(hào)或者讀者姓名。</p><p><b>  組用戶管理模塊:</b></p><p>

16、; ?。?)組用戶管理界面:</p><p>  操作方式包括:修改、刪除、添加。</p><p>  組用戶信息包括:組編號(hào)、組名稱(chēng)、最長(zhǎng)天數(shù)、最多本數(shù)。</p><p>  3.3.5圖書(shū)借還模塊:</p><p>  圖書(shū)借閱界面包括圖書(shū)編號(hào)、書(shū)名、類(lèi)別、出版社、出版日期、借書(shū)證號(hào)等</p><p>  歸還圖書(shū)

17、界面包括圖書(shū)的屬性、歸還者的信息。</p><p><b>  4 總結(jié)</b></p><p>  通過(guò)完成本次圖書(shū)管理系統(tǒng)實(shí)踐,使我系統(tǒng)的經(jīng)歷了一次JAVA軟件開(kāi)發(fā)的整個(gè)設(shè)計(jì)開(kāi)發(fā)過(guò)程,把所學(xué)的知識(shí)綜合的運(yùn)用到這次實(shí)踐中,重新復(fù)習(xí)了課本上講到的知識(shí),覺(jué)得有一種溫故而知新的感覺(jué),通過(guò)實(shí)踐同時(shí)也收獲了許多課本上沒(méi)有的東西。</p><p>  

18、尤其是在開(kāi)發(fā)圖書(shū)管理系統(tǒng)的過(guò)程當(dāng)中,也遇到了許多技術(shù)上或者其他方面的困難,但是也算經(jīng)過(guò)自己的努力,基本上克服了這些困難。由于我的水平確實(shí)有限,加之也沒(méi)有實(shí)際的項(xiàng)目經(jīng)驗(yàn),設(shè)計(jì)時(shí)間短,所以該系統(tǒng)還有許多不盡如人意的地方,比如功能較少,出錯(cuò)處理不夠等多方面問(wèn)題 ,距離真正實(shí)用的圖書(shū)管理系統(tǒng)還有許多差距,但我相信,軟件開(kāi)發(fā)是一個(gè)不斷完善的過(guò)程,我會(huì)在以后得學(xué)習(xí)當(dāng)中繼續(xù)完善的 。</p><p>  在這次設(shè)計(jì)過(guò)程中,培養(yǎng)

19、了我的自學(xué)能力,在遇到困難的時(shí)候,能夠認(rèn)真的對(duì)待,不放棄,無(wú)論是查看各種書(shū)籍還是到圖書(shū)館中查找各種資料,想盡一切辦法將這個(gè)問(wèn)題解決。我總結(jié)了許多編程經(jīng)驗(yàn),這將在以后的學(xué)習(xí)生活中有很大的幫助。</p><p><b>  5、致謝</b></p><p>  感謝那些給我?guī)?lái)幫助的書(shū)籍和internet,還有周邊的同學(xué)們。還要感謝我們的指導(dǎo)老師給我們這么多學(xué)生的文檔認(rèn)真

20、批改,讓我們知道在課程設(shè)計(jì)與實(shí)現(xiàn)的過(guò)程中存在的問(wèn)題。</p><p><b>  6、參考文獻(xiàn)</b></p><p>  [1] 王克宏、郝建文. Java技術(shù)教程 [M]. 北京:清華大學(xué)出版社,2002年</p><p>  [2] 基于JAVA的學(xué)生信息管理系統(tǒng) 李偉 電子科技大學(xué) 【碩士】電子科技大學(xué) 2009-04-01

21、 0 578 </p><p>  [3] J2EE框架及全文檢索技術(shù)在信息管理系統(tǒng)中的應(yīng)用 徐立峰 電子科技大學(xué) 【碩士】電子科技大學(xué) 2009-10-01 </p><p><b>  7、附錄</b></p><p><b>  附部分主要源代碼:</b></p><p>

22、;  import javax.swing.*; </p><p>  import java.awt.*;</p><p>  import java.awt.event.*; </p><p>  import javax.swing.table.*;</p><p>  import java.sql.*;</p&

23、gt;<p>  import edu.njust.cs.*;</p><p>  public class SimpleBookManager{</p><p>  public static void main(String []args){</p><p>  SetFont.setFont(new Font("楷體", 0,

24、 12));</p><p>  Connection con=null;</p><p><b>  try{</b></p><p>  con=SqlUtil.acquireConnection("127.0.0.1",</p><p>  "1433","book

25、Test","admin","xyz");</p><p>  }catch(Exception e){</p><p>  System.out.println(e);</p><p>  System.exit(-1);</p><p><b>  }</b><

26、/p><p>  if(con!=null){</p><p>  JFrame f=new JFrame();</p><p>  f.addWindowListener(new WindowAdapter(){</p><p>  public void windowClosing(WindowEvent e){</p>&

27、lt;p>  System.exit(0);</p><p><b>  }</b></p><p><b>  });</b></p><p>  f.getContentPane().add(new BookManager(f,con));</p><p>  f.setSize(6

28、00,400);</p><p><b>  f.show();</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  class Boo

29、kManager extends JPanel implements ActionListener{</p><p>  private String [] columnNames={"圖書(shū)編號(hào)","書(shū)名","定價(jià)","出版社"};</p><p>  private Class []dataType={Str

30、ing.class,String.class,Double.class,String.class};</p><p>  private CustomTableModel model=null;</p><p>  private JTable table=null;</p><p>  private Connection con=null;</p>

31、;<p>  private JButton btnAdd=new TextAndPicButton("image/addrow20.gif"," 增 加 ");</p><p>  private JButton btnSearch=new TextAndPicButton("image/search20.gif"," 查

32、 詢(xún) ");</p><p>  private JButton btnDelete=new TextAndPicButton("image/deleterow20.gif"," 刪 除 ");</p><p>  private JButton btnExit=new TextAndPicButton("image/exi

33、t20.gif"," 退 出 ");</p><p>  private JFrame f=null;</p><p>  public BookManager(JFrame f,Connection con){</p><p><b>  this.f=f;</b></p><p> 

34、 this.con=con;</p><p><b>  //構(gòu)建工具條</b></p><p>  JToolBar toolBar=new JToolBar();</p><p>  toolBar.add(btnAdd);</p><p>  toolBar.add(btnSearch);</p>&

35、lt;p>  toolBar.add(btnDelete);</p><p>  toolBar.add(btnExit);</p><p><b>  //注冊(cè)事件偵聽(tīng)器</b></p><p>  btnAdd.addActionListener(this);</p><p>  btnSearch.add

36、ActionListener(this);</p><p>  btnDelete.addActionListener(this);</p><p>  btnExit.addActionListener(this);</p><p><b>  //構(gòu)建表格</b></p><p>  model=new Cust

37、omTableModel(0,columnNames.length,columnNames,dataType);</p><p>  table = new JTable(model); </p><p>  table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);</p><p>  table.setSelection

38、Mode(ListSelectionModel.SINGLE_SELECTION );</p><p>  //設(shè)定表格每列的寬度</p><p>  setTableColumnWidth(0,100);</p><p>  setTableColumnWidth(1,200);</p><p>  setTableColumnWidth(

39、2,100);</p><p>  setTableColumnWidth(3,250);</p><p>  //布局工具條及表格</p><p>  this.setLayout(new BorderLayout());</p><p>  this.add(toolBar,BorderLayout.NORTH);</p&g

40、t;<p>  this.add(new JScrollPane(table),BorderLayout.CENTER);</p><p><b>  }</b></p><p>  //設(shè)置表格指定列的寬度</p><p>  public void setTableColumnWidth(int column,int

41、width){</p><p>  if(column<columnNames.length&&column>=0){</p><p>  TableColumn col=table.getColumn(columnNames[column]);</p><p>  col.setPreferredWidth(width);</

42、p><p><b>  }</b></p><p><b>  }</b></p><p>  public void actionPerformed(ActionEvent e){</p><p>  Object s=e.getSource();</p><p>  if(s

43、==this.btnAdd) add();</p><p>  else if(s==this.btnSearch)search();</p><p>  else if(s==this.btnDelete) delete();</p><p>  else if(s==this.btnExit) System.exit(0);</p><p&

44、gt;<b>  }</b></p><p>  //增加一條記錄到數(shù)據(jù)庫(kù)</p><p>  public void add(){</p><p>  BookEditor be=new BookEditor(f,"增加",true);</p><p>  be.show();</p>

45、<p>  //只有點(diǎn)擊了信息對(duì)話框中的確定按鈕,才增加記錄</p><p>  if(be.getActionCode()==be.OK){</p><p>  String insertSql="insert into bookInfo VALUES (?,?,?,?)";</p><p>  Object []lineForDB

46、Add={be.getID(),be.getBookName(),</p><p>  be.getBookPrice(),be.getBookPress()};</p><p>  if(SqlUtil.addRowToDB(con,insertSql,lineForDBAdd))</p><p>  { //成功寫(xiě)入數(shù)據(jù)庫(kù)的記錄,追加到表格的末行顯示&l

47、t;/p><p>  Object []lineForTable=</p><p>  SqlUtil.getLineForTableFromLineForDB(lineForDBAdd,dataType);</p><p>  model.insertRow(model.getRowCount(),lineForTable);</p><p>

48、  //將表格的最后一行選中</p><p>  table.changeSelection(model.getRowCount()-1,0,false,false);</p><p><b>  }</b></p><p><b>  else</b></p><p>  JOptionPan

49、e.showMessageDialog(this,"新增時(shí)出錯(cuò)!",</p><p>  "提示",JOptionPane.INFORMATION_MESSAGE);</p><p><b>  }</b></p><p><b>  }</b></p><

50、;p><b>  //查詢(xún)數(shù)據(jù)庫(kù)</b></p><p>  public void search(){</p><p>  SearchDialog sd=new SearchDialog(f,"查詢(xún)",true);</p><p>  sd.show();</p><p>  if(sd.g

51、etActionCode()==sd.OK){</p><p>  String readSql=sd.getSQL();</p><p>  SqlUtil.readDBToTable(con,readSql,model,dataType);</p><p><b>  }</b></p><p><b> 

52、 }</b></p><p><b>  //刪除選定的記錄</b></p><p>  public void delete(){</p><p>  int selected=table.getSelectedRow();</p><p>  if(selected>=0&&sele

53、cted<model.getRowCount()){</p><p>  int result=JOptionPane.showConfirmDialog (f,"您確定要?jiǎng)h除該條圖書(shū)信息嗎?"</p><p>  ,"確認(rèn)",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);&l

54、t;/p><p>  if (result!=JOptionPane.YES_OPTION)return ;</p><p>  String deleteSql="delete from bookInfo where bookID=?";</p><p>  Object []keys={model.getValueAt(selected,0).

55、toString()};</p><p>  if(SqlUtil.deleteFromDB(con,deleteSql,keys))</p><p>  model.removeRow(selected);</p><p><b>  }</b></p><p><b>  else</b><

56、;/p><p>  JOptionPane.showMessageDialog(f,"請(qǐng)選定要?jiǎng)h除的一行!"</p><p>  ,"提示",JOptionPane.INFORMATION_MESSAGE);</p><p><b>  }</b></p><p>  //內(nèi)部

57、類(lèi),用于顯示/編輯圖書(shū)信息的一個(gè)模式對(duì)話框</p><p>  class BookEditor extends JDialog implements ActionListener{</p><p>  final int OK=1;</p><p>  final int CANCEL=-1;</p><p>  final int

58、 CLOSE=0;</p><p>  private int actionCode=CANCEL;</p><p>  private JLabel labID=new JLabel(" 圖書(shū)編號(hào) ");</p><p>  private JTextField txtID=new JTextField();</p>

59、;<p>  private JLabel labBookName=new JLabel(" 圖書(shū)名稱(chēng) ");</p><p>  private JTextField txtBookName=new JTextField();</p><p>  private JLabel labBookPrice=new JLabel(" 單

60、 價(jià) ");</p><p>  private JTextField txtBookPrice=new JTextField();</p><p>  private JLabel labBookPress=new JLabel(" 出 版 社 ");</p><p>  private JTextFi

61、eld txtBookPress=new JTextField();</p><p>  private JButton btnPre=new JButton("上一個(gè)");</p><p>  private JButton btnNext=new JButton("下一個(gè)"); </p><p>  p

62、rivate JButton btnOk=new JButton("確定");</p><p>  private JButton btnCancel=new JButton("取消");</p><p>  private JFrame f=null;</p><p>  public BookEditor(JFrame f

63、,String s,boolean b){</p><p>  super(f,s,b);</p><p><b>  this.f=f;</b></p><p>  //面板p中顯示圖書(shū)信息</p><p>  JPanel p=new JPanel();</p><p>  p.setLay

64、out(new GridBagLayout());</p><p>  LayoutUtil.add(p,GridBagConstraints.NONE,</p><p>  GridBagConstraints.CENTER,0,0,0,0,1,1,labID);</p><p>  LayoutUtil.add(p,GridBagConstraints.HORI

65、ZONTAL,</p><p>  GridBagConstraints.CENTER,100,0,1,0,1,1,txtID);</p><p>  LayoutUtil.add(p,GridBagConstraints.NONE,</p><p>  GridBagConstraints.CENTER,0,0,2,0,1,1,labBookName);</

66、p><p>  LayoutUtil.add(p,GridBagConstraints.HORIZONTAL,</p><p>  GridBagConstraints.CENTER,100,0,3,0,1,1,txtBookName);</p><p>  LayoutUtil.add(p,GridBagConstraints.NONE,</p>

67、<p>  GridBagConstraints.CENTER,0,0,0,1,1,1,labBookPrice);</p><p>  LayoutUtil.add(p,GridBagConstraints.HORIZONTAL,</p><p>  GridBagConstraints.CENTER,100,0,1,1,1,1,txtBookPrice);</p>

68、<p>  LayoutUtil.add(p,GridBagConstraints.NONE,</p><p>  GridBagConstraints.CENTER,0,0,2,1,1,1,labBookPress);</p><p>  LayoutUtil.add(p,GridBagConstraints.HORIZONTAL,</p><p>

69、  GridBagConstraints.CENTER,100,0,3,1,1,1,txtBookPress);</p><p><b>  //注冊(cè)事件偵聽(tīng)器</b></p><p>  btnOk.addActionListener(this);</p><p>  btnCancel.addActionListener(this);<

70、;/p><p>  btnPre.addActionListener(this);</p><p>  btnNext.addActionListener(this);</p><p>  btnOk.setIcon(new ImageIcon("image/ok20.gif"));</p><p>  btnCan

71、cel.setIcon(new ImageIcon("image/cancel20.gif"));</p><p>  btnPre.setIcon(new ImageIcon("image/pre20.gif"));</p><p>  btnNext.setIcon(new ImageIcon("image/next20.gif&quo

72、t;));</p><p>  btnNext.setHorizontalTextPosition(SwingConstants.LEFT);</p><p>  //在增加模式下前后移動(dòng)按鈕置為不可用</p><p>  //讀者擴(kuò)展該程序具有編輯功能時(shí),可以將前后移動(dòng)按鈕置為可用</p><p>  if(s.equals(&quo

73、t;增加")){</p><p>  btnPre.setEnabled(false);</p><p>  btnNext.setEnabled(false);</p><p><b>  }</b></p><p>  //面板ap中顯示4個(gè)按鈕</p><p>  JPane

74、l ap=new JPanel();</p><p>  ap.setLayout(new GridBagLayout());</p><p>  LayoutUtil.add(ap,GridBagConstraints.NONE,</p><p>  GridBagConstraints.CENTER,0,0,0,0,1,1,this.btnPre);</p

75、><p>  LayoutUtil.add(ap,GridBagConstraints.NONE,</p><p>  GridBagConstraints.CENTER,0,0,1,0,1,1,this.btnNext);</p><p>  LayoutUtil.add(ap,GridBagConstraints.HORIZONTAL,</p><

76、;p>  GridBagConstraints.CENTER,100,0,2,0,1,1,new JLabel());</p><p>  LayoutUtil.add(ap,GridBagConstraints.NONE,</p><p>  GridBagConstraints.CENTER,0,0,3,0,1,1,this.btnOk);</p><p>

77、;  LayoutUtil.add(ap,GridBagConstraints.NONE,</p><p>  GridBagConstraints.CENTER,0,0,4,0,1,1,this.btnCancel);</p><p>  getContentPane().add(p,BorderLayout.CENTER);</p><p>  getConte

78、ntPane().add(ap,BorderLayout.SOUTH);</p><p>  //將對(duì)話框窗口定位在父窗口的居中位置</p><p>  setSizeAndPosition(550,120);</p><p>  this.addWindowListener(new WindowAdapter(){</p><p> 

79、 public void windowClosing(WindowEvent e){</p><p>  actionCode=CLOSE;</p><p><b>  }</b></p><p><b>  });</b></p><p><b>  }</b><

80、/p><p>  //將對(duì)話框窗口定位在父窗口的居中位置</p><p>  public void setSizeAndPosition(int w,int h){</p><p>  this.setSize(w,h);</p><p>  Dimension d=f.getSize();</p><p>  Poin

81、t pp=f.getLocation();</p><p>  this.setLocation(pp.x+(d.width-w)/2,pp.y+(d.height-h)/2);</p><p><b>  }</b></p><p>  public void actionPerformed(ActionEvent e){</p>

82、<p>  Object s=e.getSource();</p><p>  if(s==this.btnCancel){</p><p>  this.actionCode=this.CANCEL;</p><p>  this.setVisible(false);</p><p><b>  }</b&g

83、t;</p><p>  else if(s==this.btnOk) okClicked();</p><p><b>  }</b></p><p>  public String getID(){</p><p>  return txtID.getText().trim();</p>

84、<p><b>  }</b></p><p>  public String getBookName(){</p><p>  return txtBookName.getText().trim();</p><p><b>  }</b></p><p>  //將圖書(shū)單價(jià)由字符

85、串類(lèi)型轉(zhuǎn)化為Double類(lèi)型</p><p>  //如果不是合法的數(shù)值字符串,取值Double.NEGATIVE_INFINITY</p><p>  public Double getBookPrice(){</p><p>  double result=Double.NEGATIVE_INFINITY;</p><p><b&g

86、t;  try{</b></p><p>  result=Double.parseDouble(this.txtBookPrice.getText().trim());</p><p>  }catch(Exception e){</p><p>  result=Double.NEGATIVE_INFINITY;</p><p&g

87、t;<b>  }</b></p><p>  return new Double(result);</p><p><b>  }</b></p><p>  public String getBookPress(){</p><p>  return txtBookPress.getText()

88、.trim();</p><p><b>  }</b></p><p>  public int getActionCode(){</p><p>  return this.actionCode;</p><p><b>  }</b></p><p>  public

89、void okClicked(){</p><p>  //圖書(shū)編號(hào)不為空,且價(jià)格為數(shù)值類(lèi)型時(shí) 隱藏對(duì)話框</p><p>  if(!this.txtID.getText().trim().equals("")){</p><p><b>  try{</b></p><p>  Double.p

90、arseDouble(this.txtBookPrice.getText().trim());</p><p>  }catch(Exception e){</p><p>  JOptionPane.showMessageDialog(f,"價(jià)格非法!","提示",</p><p>  JOptionPane.INFORMA

91、TION_MESSAGE);</p><p><b>  return ;</b></p><p><b>  }</b></p><p>  this.actionCode=this.OK;</p><p>  this.setVisible(false);</p><p&g

92、t;<b>  }</b></p><p><b>  else</b></p><p>  JOptionPane.showMessageDialog(f,"請(qǐng)?jiān)O(shè)定圖書(shū)編號(hào)!","提示",</p><p>  JOptionPane.INFORMATION_MESSAGE);&l

93、t;/p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  class SearchDialog extends JDialog implements ActionListener{</p>

94、;<p>  final int OK=1;</p><p>  final int CANCEL=-1;</p><p>  final int CLOSE=0;</p><p>  private int actionCode=CANCEL;</p><p>  private JRadioButton rad

95、ID=new JRadioButton(" 圖書(shū)編號(hào) ");</p><p>  private JTextField txtID=new JTextField();</p><p>  private JRadioButton radBookName=new JRadioButton(" 圖書(shū)名稱(chēng) ");</p><p

96、>  private JTextField txtBookName=new JTextField();</p><p>  private JRadioButton radBookPress=new JRadioButton(" 出 版 社 ");</p><p>  private JTextField txtBookPress=new JTextFi

97、eld();</p><p>  private JButton btnOk=new JButton("確定(Yes)");</p><p>  private JButton btnCancel=new JButton("取消(Esc)");</p><p>  private JFrame f=null;</p&g

98、t;<p>  public SearchDialog(JFrame f,String s,boolean b){</p><p>  super(f,s,b);</p><p><b>  this.f=f;</b></p><p>  ButtonGroup group=new ButtonGroup();</p&g

99、t;<p>  group.add(radID);</p><p>  group.add(radBookName);</p><p>  group.add(radBookPress);</p><p>  txtID.setEditable(false);</p><p>  radBookName.setSelecte

100、d(true);</p><p>  txtBookPress.setEditable(false);</p><p>  radID.addActionListener(this);</p><p>  radBookName.addActionListener(this);</p><p>  radBookPress.addActi

101、onListener(this);</p><p>  //面板p中顯示查詢(xún)條件</p><p>  JPanel p=new JPanel();</p><p>  p.setLayout(new GridBagLayout());</p><p>  LayoutUtil.add(p,GridBagConstraints.NONE,&

102、lt;/p><p>  GridBagConstraints.CENTER,0,0,0,0,1,1,radID);</p><p>  LayoutUtil.add(p,GridBagConstraints.HORIZONTAL,</p><p>  GridBagConstraints.CENTER,100,0,1,0,1,1,txtID);</p>&

103、lt;p>  LayoutUtil.add(p,GridBagConstraints.NONE,</p><p>  GridBagConstraints.WEST,0,0,0,1,1,1,radBookName);</p><p>  LayoutUtil.add(p,GridBagConstraints.HORIZONTAL,</p><p>  Grid

104、BagConstraints.CENTER,100,0,1,1,1,1,txtBookName);</p><p>  LayoutUtil.add(p,GridBagConstraints.NONE,</p><p>  GridBagConstraints.CENTER,0,0,0,2,1,1,radBookPress);</p><p>  LayoutUti

105、l.add(p,GridBagConstraints.HORIZONTAL,</p><p>  GridBagConstraints.CENTER,100,0,1,2,1,1,txtBookPress);</p><p>  btnOk.setIcon(new ImageIcon("image/ok20.gif"));</p><p>  bt

106、nCancel.setIcon(new ImageIcon("image/cancel20.gif"));</p><p>  btnOk.addActionListener(this);</p><p>  btnCancel.addActionListener(this);</p><p>  //面板ap中顯示確定 取消按鈕<

107、/p><p>  JPanel ap=new JPanel();</p><p>  ap.add(btnOk);</p><p>  ap.add(btnCancel);</p><p>  getContentPane().add(p,BorderLayout.CENTER);</p><p>  getConte

108、ntPane().add(ap,BorderLayout.SOUTH);</p><p>  setSizeAndPosition(300,200);</p><p>  this.addWindowListener(new WindowAdapter(){</p><p>  public void windowClosing(WindowEvent e){&

109、lt;/p><p>  actionCode=CLOSE;</p><p><b>  }</b></p><p><b>  });</b></p><p><b>  }</b></p><p>  //將對(duì)話框窗口定位在父窗口的居中位置</p&

110、gt;<p>  public void setSizeAndPosition(int w,int h){</p><p>  this.setSize(w,h);</p><p>  Dimension d=f.getSize();</p><p>  Point pp=f.getLocation();</p><p>  t

111、his.setLocation(pp.x+(d.width-w)/2,pp.y+(d.height-h)/2);</p><p><b>  }</b></p><p>  public void setTxtEditable(boolean b1,boolean b2,boolean b3){</p><p>  txtID.setEdita

112、ble(b1);</p><p>  txtBookName.setEditable(b2);</p><p>  txtBookPress.setEditable(b3);</p><p><b>  }</b></p><p>  public void actionPerformed(ActionEvent e){

113、</p><p>  Object s=e.getSource();</p><p>  if(s==this.radID)setTxtEditable(true,false,false);</p><p>  else if(s==this.radBookName)setTxtEditable(false,true,false);</p><

114、;p>  else if(s==this.radBookPress)setTxtEditable(false,false,true);</p><p>  else if(s==this.btnOk){</p><p>  this.actionCode=this.OK;</p><p>  this.setVisible(false);</p>

115、<p><b>  }</b></p><p>  else if(s==this.btnCancel){</p><p>  this.actionCode=this.CANCEL;</p><p>  this.setVisible(false);</p><p><b>  }</b&

116、gt;</p><p><b>  }</b></p><p>  public int getActionCode(){</p><p>  return actionCode;</p><p><b>  }</b></p><p>  public String get

117、SQL(){</p><p>  String sql="select * from bookInfo where ";</p><p>  if(radID.isSelected())</p><p>  sql=sql+" bookID like '%"+txtID.getText().trim()+"%

118、'";</p><p>  else if(radBookName.isSelected())</p><p>  sql=sql+" bookName like '%"+txtBookName.getText().trim()+"%'";</p><p>  else if(radBookP

119、ress.isSelected())</p><p>  sql=sql+" bookPress like '%"+txtBookPress.getText().trim()+"%'";</p><p>  return sql;</p><p><b>  }</b></p>

120、<p><b>  }</b></p><p>  package edu.njust.cs;</p><p>  import java.sql.*;</p><p>  import javax.swing.*;</p><p>  import java.util.*;</p><

121、p>  import java.io.*;</p><p>  public class SqlUtil{</p><p><b>  //讀入配置文件</b></p><p>  public static Properties loadProperty(String fileName){</p><p>  P

122、roperties prop=new Properties();</p><p><b>  try{</b></p><p>  FileInputStream in=new FileInputStream(</p><p>  System.getProperties().get("user.dir")+"

123、;/"+fileName);</p><p>  prop.load(in);</p><p>  in.close();</p><p>  }catch(IOException e){</p><p>  e.printStackTrace();</p><p>  JOptionPane.sho

124、wMessageDialog(null,</p><p>  "配置文件丟失!\n建議重新安裝程序",</p><p><b>  "信息",</b></p><p>  JOptionPane.ERROR_MESSAGE);</p><p>  prop=null;</p&

125、gt;<p><b>  }</b></p><p>  return prop;</p><p><b>  }</b></p><p>  //建立和MS SQL SERVER的連接</p><p>  public static Connection acquireConnec

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論