資源描述:
《實(shí)現(xiàn)多個(gè)窗口之間的導(dǎo)航》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第15章實(shí)現(xiàn)多個(gè)窗口之間的導(dǎo)航實(shí)現(xiàn)系統(tǒng)主界面導(dǎo)航多個(gè)窗口實(shí)現(xiàn)租書管理子系統(tǒng)15.1實(shí)現(xiàn)系統(tǒng)主界面定義MainGUI類實(shí)現(xiàn)主界面的布局,包括主界面內(nèi)標(biāo)題欄、菜單欄和功能區(qū)的布局及系統(tǒng)菜單退出事件處理。功能區(qū)中采用2行×3列的布局方式。15.1實(shí)現(xiàn)系統(tǒng)主界面在按鈕上增加圖標(biāo),設(shè)置圖書按鈕的代碼:JButtonbookButton=newJButton();bookButton.setText("圖書");bookButton.setBorder(newBevelBorder(BevelBorder.RAISED));ImageIconbookPicture=newImageIcon(
2、"f:\picture\book.png");bookButton.setIcon(bookPicture);15.1實(shí)現(xiàn)系統(tǒng)主界面主界面的布局使用GridBagLayout,MainGUI類的定義如下:15.1實(shí)現(xiàn)系統(tǒng)主界面15.1實(shí)現(xiàn)系統(tǒng)主界面15.1實(shí)現(xiàn)系統(tǒng)主界面15.1實(shí)現(xiàn)系統(tǒng)主界面15.1實(shí)現(xiàn)系統(tǒng)主界面15.1實(shí)現(xiàn)系統(tǒng)主界面主界面實(shí)現(xiàn)效果15.2導(dǎo)航多個(gè)窗口多個(gè)窗口之間的導(dǎo)航,從系統(tǒng)主界面MainGUI類鏈接到圖書管理主界面BookGUI類,再從BookGUI類鏈接到圖書查詢界面及圖書添加界面,子任務(wù)完成后又返回上一級界面。15.2導(dǎo)航多個(gè)窗口模仿圖書數(shù)據(jù)庫使用圖書
3、的Vector模仿與數(shù)據(jù)庫的交互作用:在Book類中增加Vector類型的靜態(tài)屬性books,編寫模擬數(shù)據(jù)存取的兩個(gè)方法initialize和getAll,并將其添加到問題域類Book中,在GUI類中調(diào)用這些方法,但并不需要知道其具體實(shí)現(xiàn)。15.2導(dǎo)航多個(gè)窗口模仿圖書數(shù)據(jù)庫修改Book類的屬性:增加booksprivateStringbookNo;//書號privateStringtitle;//標(biāo)題privateStringauthor;//作者privatedoubleprice;//價(jià)格staticVectorbooks;15.2導(dǎo)航多個(gè)窗口模仿圖書數(shù)據(jù)庫定義initial
4、ize()方法:在準(zhǔn)備存取數(shù)據(jù)庫的過程中執(zhí)行初始化任務(wù),創(chuàng)建圖書實(shí)例,并將其存儲到向量books中。15.2導(dǎo)航多個(gè)窗口模仿圖書數(shù)據(jù)庫修改Book的構(gòu)造方法:publicBook(StringbookNo,Stringtitle,Stringauthor,doubleprice){this.bookNo=bookNo;this.title=title;this.author=author;this.price=price;this.books.add(this);}15.2導(dǎo)航多個(gè)窗口模仿圖書數(shù)據(jù)庫定義getAll()方法:返回Vector引用//returnvectorofbo
5、okspublicstaticVectorgetAll(){returnbooks;}15.2導(dǎo)航多個(gè)窗口從系統(tǒng)主界面導(dǎo)航到圖書管理界面增加圖書按鈕的事件響應(yīng)15.2導(dǎo)航多個(gè)窗口從系統(tǒng)主界面導(dǎo)航到圖書管理界面加入熱鍵處理15.2導(dǎo)航多個(gè)窗口從系統(tǒng)主界面導(dǎo)航到圖書管理界面修改圖書管理界面類BookGUI(1)不再需要BookGUI類中的main方法。(2)將BookGUI類中的books改為data,MyTableModel類的定義不需要修改。(3)增加向量books的定義如下:privateVectorbooks=newVector();使用Book類的getAll()方法取得b
6、ooks的值:books=Book.getAll();15.2導(dǎo)航多個(gè)窗口從系統(tǒng)主界面導(dǎo)航到圖書管理界面修改圖書管理界面類BookGUI(4)編寫dataRefresh()方法將books的內(nèi)容添加到data中。15.2導(dǎo)航多個(gè)窗口從系統(tǒng)主界面導(dǎo)航到圖書管理界面修改圖書管理界面類BookGUI(5)暫時(shí)刪去按鈕點(diǎn)擊響應(yīng)事件BookGUI類15.2導(dǎo)航多個(gè)窗口從系統(tǒng)主界面導(dǎo)航到圖書管理界面程序運(yùn)行結(jié)果15.2導(dǎo)航多個(gè)窗口從圖書管理界面導(dǎo)航到圖書查詢界面在BookGUI類的構(gòu)造方法中增加對查詢按鈕的事件響應(yīng)//查詢按鈕的事件響應(yīng)findButton.addActionListener
7、(newActionListener(){publicvoidactionPerformed(ActionEvente){//點(diǎn)擊查詢按鈕,彈出圖書查詢界面newBookSearch();}});15.2導(dǎo)航多個(gè)窗口從圖書管理界面導(dǎo)航到圖書查詢界面對BookSearch類進(jìn)行以下修改:(1)取消main方法和createBooks()方法(2)將BookSearch類構(gòu)造方法中的以下語句:this.createBooks();改為books=Book.getAll();15.2導(dǎo)