JAVA課程設(shè)計打磚塊含代碼_第1頁
JAVA課程設(shè)計打磚塊含代碼_第2頁
JAVA課程設(shè)計打磚塊含代碼_第3頁
JAVA課程設(shè)計打磚塊含代碼_第4頁
JAVA課程設(shè)計打磚塊含代碼_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

文檔文檔Java程序課程設(shè)計任務(wù)書一、主要容打磚塊游戲是一種動作電子游戲的名稱。玩家操作一根螢幕上水平的“棒子=讓一顆不斷彈來彈去的“球”在撞擊作為過關(guān)目標消去的“磚塊”的途中不會落到螢幕底下。球碰到磚塊、棒子與底下以外的三邊會反彈,落到底下會失去一顆球,把磚塊全部消去就可以破關(guān)。二、具體要求通過圖形用戶界面(GraphicsUseiInterface,GUI)和線程,使用戶和程序之間可以方便地進行交互。運用Swing組件,編寫小應(yīng)用程序游戲,加深對Java語言的理解,深入地了解圖形用戶界面的設(shè)計,更加熟練地運用編程軟件。功能要求:(1)游戲運行需鍵盤的操作;(2) 游戲可統(tǒng)計分數(shù):(3) 球落到底下會失去一顆,按ENTER可重新開始。開發(fā)工具:JCTeatei軟件;開發(fā)技術(shù):J2MEo三、進度安排12月28n:課程設(shè)計選題,查找參考資料12月29ri:完成打磚塊游戲程序設(shè)計分析12月30n~1月3n:完成程序代碼的編寫1月4日~1月5口:游戲測試與完善1月6日月7口:完成課程設(shè)計報告,準備答辯四、主要參考文獻(美)??藸栔基i,饒若楠等譯.Jaw編程思想[J].機械工業(yè),2005(美)GaiyJ.Biousou著瓏雅文譯.Jaw編程原理[J].清華大學,2004(美)MichaelMorrison著徐剛,于健,薛雷譯.游戲編程入門[J].人民郵電,2005.9(美)WendyStabler著馮寶坤,曹英譯.游戲編程中的數(shù)理應(yīng)用[J].紅旗,2005

(美)DavidBiackeeu著邱仲潘譯.Java游戲編程[J].科學,2004聶慶亮編著.(美)DavidBiackeeu著邱仲潘譯.Java游戲編程[J].科學,2004聶慶亮編著.Java應(yīng)用開發(fā)指南[J].清華大學,2010耿祥義,躍平編著.Java面向?qū)ο蟪绦蛟O(shè)計[J].清華大學,2010紹方編著.Java編程實用技術(shù)與案例[J].清華大學,2000.11明口科技編著.Java編程全能詞典[J].電子工業(yè),2010[7][8][9][10]隨著Java語言的不斷發(fā)展和壯大,現(xiàn)在的Java己經(jīng)廣泛的應(yīng)用于各個領(lǐng)域,包括醫(yī)藥,汽車工業(yè),手機行業(yè),游戲,等等地方。Java游戲的開發(fā)為滿足人們娛樂所需而設(shè)計。本游戲為打磚塊游戲,是基于Java的圖形用戶界面而開發(fā)的,可以放松心情的小游戲。游戲從系統(tǒng)操作簡便、界面友好、靈活、上手即會的基本要求出發(fā),完成整款游戲的開發(fā)。游戲更設(shè)置了暫停、計分、音樂、速度,用戶信息保存等功能,可以根據(jù)自己的愛好,挑戰(zhàn)更高難度,為用戶帶來愉悅的體驗。本課程設(shè)計報告介紹了游戲的構(gòu)想,分析,開發(fā),實現(xiàn)的過程。論述了游戲的功能開發(fā),設(shè)計構(gòu)思。給出了游戲的設(shè)計步驟,游戲系統(tǒng)關(guān)鍵的設(shè)計思想;在游戲系統(tǒng)實現(xiàn)章節(jié)給出了部分功能流程和相關(guān)代碼。關(guān)鍵詞:游戲,打磚塊java程序課程設(shè)計任務(wù)書II第1章引言1.1背景 1.2課程設(shè)計容13任務(wù)分工?…第二章彈磚塊小游戲應(yīng)用程序2.1彈磚塊小游戲應(yīng)用程序概述 2JJ打磚塊小游戲系統(tǒng)任務(wù)及目的.2.2主要特色系統(tǒng)介紹 2.3本章小結(jié) 第3章打磚塊游戲系統(tǒng)的設(shè)計系統(tǒng)需求分析系統(tǒng)開發(fā)及運行環(huán)境系統(tǒng)主要功能要求.…3.4341打磚塊系統(tǒng)總體結(jié)構(gòu).系統(tǒng)數(shù)據(jù)流圖 3.5本章小結(jié)第4章系統(tǒng)數(shù)據(jù)庫設(shè)計1041數(shù)據(jù)庫設(shè)計過程4.1需求分析、103.4341打磚塊系統(tǒng)總體結(jié)構(gòu).系統(tǒng)數(shù)據(jù)流圖 3.5本章小結(jié)第4章系統(tǒng)數(shù)據(jù)庫設(shè)計1041數(shù)據(jù)庫設(shè)計過程4.1需求分析、101042功能實現(xiàn).43本章小結(jié) 1011第5章系統(tǒng)的具體實現(xiàn)125.1界面設(shè)計 5.1.1用戶登錄界面圖.5」?2游戲主界面. 12121319195.2程序設(shè)計及調(diào)試運行521自動計時.19522在JPanel中畫圖??5.2.3用戶注冊登錄系統(tǒng).2021524游戲結(jié)果的存儲.5.3本章小結(jié) 2223第6章結(jié)束語24致謝25參考文獻26附錄源代碼26第1章引言1.1背景游戲是全球最大的娛樂經(jīng)濟項目之一,S經(jīng)被命名為“第九藝術(shù)”。而由“游戲”派生出來的職業(yè),除了軟件開發(fā)外,游戲包裝宣傳推廣、攻略指導、網(wǎng)絡(luò)游戲管理員和職業(yè)游戲玩家等,己成為了一系列專門的崗位。面對游戲產(chǎn)業(yè)如此巨大的市場空間,國各大城市紛紛加大了這方面的人才培養(yǎng),中國的游戲人才培訓己隨著游戲行業(yè)的總體發(fā)展開始逐步邁入了正軌。雖然說中國的游戲行業(yè)開始逐步的邁入了正軌,但是現(xiàn)今,游戲人才出現(xiàn)嚴重的瓶頸時期,高校的擴招、金融危機的侵襲直接影響著我們最關(guān)心的就業(yè)問題,但是另一方面游戲人才的缺乏乂直接制約著行業(yè)的發(fā)展,這就更加嚴格了對社會培訓機構(gòu)的穩(wěn)定性和正規(guī)性的要求。在我國,游戲人才培養(yǎng)體系還未健全,部分開設(shè)了相關(guān)專業(yè)的高校,游由于理論和實踐的脫離無法完全滿足網(wǎng)游公司對人才的需求。所以,就中國目前的市場分析來看,加強游戲產(chǎn)業(yè)必須在多渠道人才培養(yǎng)體系上加快突破,盡快建立起多渠道人才培養(yǎng)體系,來滿足社會對游戲人才的需求。1.2課程設(shè)計容打磚塊游戲是一種動作電子游戲的名稱。玩家操作一根螢幕上水平的彈板,讓一顆不斷彈來彈去的“球”在撞擊作為過關(guān)目標消去的“磚塊”的途中不會落到螢幕底下。球碰到磚塊、彈板與底下以外的三邊會反彈,落到底下會失去一顆球,把磚塊全部消去就可以破關(guān)。游戲的功能包含以下容:基本的游戲操作用戶可以通過鼠標或者鍵盤來操作彈板,盡量讓彈球不要掉下底下。開始按鈕和暫停按鈕可以控制游戲的進行。寶物獲得功能用戶在游戲過程中,可能獲得相關(guān)的寶物,可以使彈板增長一部分。速度設(shè)置功能本游戲有5個速度設(shè)置,可以根據(jù)用戶的需要,調(diào)節(jié)到用戶想要的速度進行游戲。音樂設(shè)置功能用戶可以根據(jù)自己的喜好,選擇自己喜歡的音樂,或者是關(guān)掉它。(5) 用戶注冊登錄功能每個用戶在游戲開始時都要輸入用戶的信息注冊,登錄,并記錄。當用戶退出游戲以后,系統(tǒng)將記錄用戶的游戲信息。(6) 計分,記時功能用戶在游戲的過程中,系統(tǒng)將記錄游戲的成績,并保存在文件中,用戶退出游戲后也可以查詢成績。1.3任務(wù)分工第二章彈磚塊小游戲應(yīng)用程序2.1彈磚塊小游戲應(yīng)用程序概述此程序設(shè)計是一個小游戲(彈磚塊)的實現(xiàn),主要運用了用戶圖形界面,程序接口和基本函數(shù)繪制來實現(xiàn),事件監(jiān)聽(包括鼠標事件,鍵盤事件,響應(yīng)時間)也是這個程序的特色。此程序用到了圖片的引用,磚塊、彈板應(yīng)用了函數(shù)繪制和圖片引用,彈球的設(shè)計外且安全是應(yīng)用函數(shù)繪制。游戲還利用JAVAApplet實現(xiàn)了播放聲音。再加入復選框,按鈕,標簽等來實現(xiàn)本游戲用戶界面布周??傊居螒蛟谟脩艚缑娴目刹僮餍?、游戲的美觀度、計分計時存儲結(jié)果方便都基本完善,有一定的可玩性。2.1.1打磚塊小游戲系統(tǒng)任務(wù)及目的此小程序是為群眾閑暇消遣之用,玩家在進入游戲后輸入H己的大名,按游戲規(guī)則用彈球打掉彈板上的全部磚塊,獲得相應(yīng)的分數(shù),進入下一關(guān),知道全部過關(guān),游戲結(jié)束后可記錄玩家分數(shù)及排行榜名次進入游戲界面,一個文本框可以選擇是否記錄游戲這名字,接著是“開始”、“暫停”、“重新開始”按鈕以及四個復選框分別控制背景音樂、速度、模型和關(guān)卡,還有四標簽記錄時間、生命分數(shù)和排行榜數(shù)據(jù)。2主要特色系統(tǒng)介紹游戲增加了背景音樂以及碰撞音樂的設(shè)置,并用圖片代替了純粹用函數(shù)構(gòu)造出的磚塊,使玩家在使用此程序時更加能體驗到樂趣。自主選關(guān)、模式選擇和速度選擇給了玩家更多的自主機動性,使得玩家可以根據(jù)自己的意愿來設(shè)定游戲難度,排行榜功能也是特色之一,玩家可以根據(jù)排行榜來了解自己玩的如何,可以有個相對的比較。2.3本章小結(jié)雖然游戲在功能和界面上不能算的上很棒,但是麻雀雖小,五臟俱全,游戲具備了彈磚塊這個經(jīng)典游戲鎖應(yīng)該具有的基本雛形。通過這一章,我們對這個游戲應(yīng)該有了比較宏觀的了解,我們將在這一基礎(chǔ)上探究游戲更完美的改變。第3章打磚塊游戲系統(tǒng)的設(shè)計這一章是打磚塊游戲系統(tǒng)的設(shè)計,從系統(tǒng)需求分析開始,介紹開發(fā)環(huán)境和用到的開發(fā)工具,系統(tǒng)主要的功能設(shè)計,系統(tǒng)的數(shù)據(jù)流程圖。3.1系統(tǒng)需求分析打磚塊的設(shè)計目標為:實現(xiàn)打磚塊游戲功能,使用背景音樂,可用鍵盤或者鼠標控制擋板,并對游戲時間,游戲分數(shù)進行記錄并保存成績到文本,列出成績排行榜。實現(xiàn)游戲難度和游戲模型的選擇,通過本關(guān)后可以選擇進入下一關(guān)。得到不同寶物可以實現(xiàn)多種游戲功能,加強游戲可玩性。3.2系統(tǒng)開發(fā)及運行環(huán)境硬件平臺:CPU:INTEL45o存:1024MB以上。軟件平臺:操作系統(tǒng):WindowsXPo數(shù)據(jù)庫:TXT文檔。開發(fā)工具包:JDKVersionL6.2o分辨率:最佳效果1024X768像素。3系統(tǒng)主要功能要求本系統(tǒng)為了實現(xiàn)游戲打磚塊。本系統(tǒng)主要實現(xiàn)如下功能:系統(tǒng)界面美觀大方舒適。實現(xiàn)游戲一些基礎(chǔ)信息的保存和讀取。畫面流暢,具有可玩性沒有較大的游戲BUGo顯示游戲者的游戲時間和積分。存儲玩家的積分。實現(xiàn)多種難度的選擇。實現(xiàn)多種磚塊的排列模型。多種寶物可以實現(xiàn)不同的功能玩家可以輸入名稱#入數(shù)據(jù)庫。系統(tǒng)最大限度地實現(xiàn)了易維護性和易操作性。系統(tǒng)運行穩(wěn)定、安全可靠。實現(xiàn)用戶的注冊及注冊信息的保存3.4.1打磚塊系統(tǒng)總體結(jié)構(gòu)打磚塊游戲是基于基本的軟件和普通硬件基礎(chǔ)上的傳統(tǒng)優(yōu)秀游戲,一個游戲應(yīng)該包括以下兒大功能,如圖3.1所示打磚塊系統(tǒng)

查詢統(tǒng)計「查詢游戲分數(shù)查詢統(tǒng)計「查詢游戲分數(shù)圖3?1系統(tǒng)功能結(jié)構(gòu)圖各功能模塊實現(xiàn)的功能為:游戲管理模塊:實現(xiàn)基本的打磚塊操作并實現(xiàn)游戲模型調(diào)整和游戲難度調(diào)整。查詢統(tǒng)計:讓玩家注冊用戶并保存它的游戲數(shù)據(jù)。實現(xiàn)游戲分數(shù)的查詢。游戲管理模塊圖如圖3.2所示。圖3.2游戲管理功能模塊圖查詢統(tǒng)計模塊圖如圖3.3所示圖3.3査詢統(tǒng)計功能模塊圖3.4系統(tǒng)數(shù)據(jù)流圖游戲信息的流向,即系統(tǒng)數(shù)據(jù)流圖如圖2.3所示。圖3?3系統(tǒng)數(shù)據(jù)流圖3.5本章小結(jié)本章是打磚塊游戲的具體設(shè)計過程,有具體的需求分析、系統(tǒng)功能模塊、系統(tǒng)數(shù)據(jù)流圖。這里我們開始接觸JAVA程序設(shè)計的最初步驟,也是很重要的一步。第4章系統(tǒng)數(shù)據(jù)庫設(shè)計本章是打磚塊的數(shù)據(jù)庫設(shè)計,有了數(shù)據(jù)庫,就可以對游戲的成績,玩家進行保存,提高游戲的可玩性、競爭性1數(shù)據(jù)庫設(shè)計過程數(shù)據(jù)庫設(shè)計是指對于一個給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫應(yīng)用系統(tǒng),使之能有效的存儲數(shù)據(jù),滿足各種用戶的應(yīng)用需求。數(shù)據(jù)庫設(shè)計方法是研究數(shù)據(jù)庫及其應(yīng)用系統(tǒng)的技術(shù),是數(shù)據(jù)庫在應(yīng)用領(lǐng)域中的主要的研究課題。4.1?求分析打磚塊的游戲存儲需要兩部分:一是游戲注冊以及存儲,二是游戲分數(shù)存儲運用較為簡單的java程序代碼,先需要注冊用戶名,效果如圖421將游戲數(shù)據(jù)存入一個名為score.txt的文本文檔。實現(xiàn)效果如下圖422匚登錄岡'匚登錄圖421Cscore.txt記事本namezrtpscore:30namezzxnscore:90namerqscscore:70圖4.2.2游戲信息的存儲4.3本章小結(jié)本章是打磚塊游戲系統(tǒng)的數(shù)據(jù)庫開發(fā)。采用的是TXT文本°第5章系統(tǒng)的具體實現(xiàn)界面是系統(tǒng)和玩家之間最直接的交互界面,界面的友好性體現(xiàn)了程序設(shè)計的質(zhì)量,界面是否便捷易懂也是程序所基本的要求。5.1界面設(shè)計5.1.1用戶登錄界面圖

5.1.2游戲主界面1:15.1.2游戲主界面1:1上圖就是進入游戲后的界面,接下來用一個框圖來表現(xiàn)界面的說明。用戶界面?.標簽??行榜.際簽??分數(shù)t標簽:生命t標簽??行榜.際簽??分數(shù)t標簽:生命t標簽時間復選框型按鈕;重新開始t按鈕??暫停.界面的初始化的關(guān)鍵代碼為:publicclassGaineextendsJFrameiiiipleiiientsRuimable,KeyListeuei;ActioiiListeiier{privateStrings=newStrmgC'打磚塊游戲”);//定義組件JToolBartoolbar=newJToolBar();//工具欄JButtougstait=null;//開始按鈕JButtougstop=null;//暫停按鈕JButtougiestail=null;//重新開始按鈕JButtousetmusic=null;//設(shè)置音樂按鈕JButtousetspeed;//設(shè)置速度按鈕JLabelctime=null;//計時標簽JLabelclife=uull;/Z生命標簽JLabelcscoie=null;//分數(shù)標簽JComboBoxgniodel=null;//磚塊排列模型JComboBoxsetgate=null;〃設(shè)置關(guān)卡JTextFieldsetNanie=uull;//游戲者//定義變量staticmtspeed=100,//速度(全局靜態(tài))staticbooleanisfire=true;//isfire為true時,有碰撞聲staticmttoolgate=0;staticbooleanrespeed=false;mthours=0,minutes=0,seconds=0;mt111=&w=5;mtlife=3;//生命mtscore=0;//分數(shù)booleanisstop=tme;//開始暫停booleansetpaddle=true;booleansetball=true;mtmodel=1;//磚塊疊放的模型0為矩形1為三角形2為倒三角形3為空三角形4為六邊形//定義嵌入對象SetMusicGetMusic;//音樂窗口SetSpeedsettiiigspeed;//速度窗口FireVbicefirevoice;//聲明碰撞聲音類Tiiieadt=newThread(this);//定義圖形Brickbnck[][]=null;//磚塊Ballball=newBallQ;//球Paddlepaddle=newPaddleQ;//板塊Treasure[]treasure=newTreasure[4];//寶物MyPanelpanel;//畫板Bufferedhiiageimgl;〃圖片Bufferedhiiageimg2;*主界面初始化函數(shù)**?/Publicvoidinit{){initvaiiableO;GetMusic=newSetMusicQ;//開啟咅樂settingspeed=newSetSpeedQ;//初始化速度設(shè)置窗口fiievoice=newFireVoiceQ;setName=newJTextField(10);//輸入對話框//設(shè)置窗體setSize(800,500),setBackgiound(Coloi;white);panel=newMyPaiiel();tills.setResizable(false);tills.setLocation(200,200),ContainercoiiteutPaiie=getCoiiteutPane();coiiteutPaiie.setLayout(uewBorderLayoutQ);tills.setTitle(s),//初始化按鈕gstail=newJButton("開始”);gstop=newJButtonC'暫停”);grestait=newJButton("重新開始”);setiiiusic=newJButtou("設(shè)置音樂”);setspeed=newJButtoii("設(shè)置速度");//初始化計時標簽ctime=newJLabel("計時:00:00:00"),clife=uewJLabel("生命:3");cscore=newJLabel("分數(shù):0");//初始化下拉欄String[]smodel=「模型1”,”模型2”「模型3役”模型化”模型5"};gmodel=newJCoiiiboBox(siiiodel);String[]sgate={"第1關(guān)”,“第2關(guān)丁第3關(guān)T第4關(guān)”,“第5關(guān)”};setgate=newJCoiiiboBox(sgate);//將組件添加到工具欄toolbaradd(gstart);toolbaraddSeparatorO;//添加分隔欄toolbai;add(gstop);toolbaraddSeparatorO;//添加分隔欄toolbai;add(grestart);toolbaraddSeparatorO;//添加分隔欄toolbai;add(setmusic);toolbaraddSeparatorO;//添加分隔欄toolbai;add(setspeed);toolbaraddSeparatorO;//添加分隔欄toolbai;add(gniodel);toolbaraddSeparatorO;//添加分隔欄toolbaradd(setgate);toolbaraddSeparatorO;//添加分隔欄toolbai;add(ctiine);toolbaraddSeparatorO;//添加分隔欄toolbai;add(clife),toolbaraddSeparatorO;//添加分隔欄toolbai;add(cscore);//添加組件到畫板coiiteutPaiie.add(toolbar,BorderLayout.NORTH),coiiteutPaiie.add(paneLBoiderLayout.CENTER);//監(jiān)聽事件gstop.setEuabled(false);gstart,addActioiiListeuer(this);gstop.addActionListeuer(this);grestart.addActionListeuer(tliis);setiiiusic.addActioiiListeuer(tliis);setspeed.addActioiiListeiiei(tliis);gniodeLaddActionListener(tliis),setgate.addActionListener(tliis);setName.addActioiiListeiier(tliis);addMouseMotioiiListeiier(newMouseMove());paiieLaddKeyListeiier(tliis);paiieLrequestFocusQ,tills.setDefaultCloseOpeiation(JFranie.EXIT_ON_CLOSE),〃輸入setVisible(tnie);iiith=JOptiouPaiie.showCoiifirniDialog(nulLsetNaiiie,"輸入",JOptioiiPaiie.YES_NO_OPTION);System.exit(O);}else{t.startO;2程序設(shè)計及調(diào)試運行編寫12個CLASS文件,#入一個包中,各個模塊的程序代碼都完成后,進行編譯連接運行,經(jīng)過反復調(diào)試,找出錯誤和不足,以達到游戲所需的基本功能和基本界面。這個過程比較繁瑣,我們參考網(wǎng)絡(luò)上現(xiàn)有的資源,并加以改進,對各個模塊仔細分析備注并進行調(diào)試,做到程序簡潔易懂,可讀性好。盡量避免因代碼不完善而導致的游戲運行中可能出現(xiàn)的錯誤。521自動計時游戲的自動計功能是非常有必要的,可以讓玩家很直觀地看到自己所玩的時間。下面是自動計時功能的部分關(guān)鍵代碼:PublicStringgettimes{mthours,iiitminuts,iutseconds){//設(shè)置時間格式Stringtext;if(hours<10)text="時間:+hours;elsetext=Stniig.valueOf(hours);if(minutes<10)text=text+ +"0"+minutes;elsetext=text+ +minutes;if(seconds<10)text=text+ +"0"+seconds;elsetext=text+ +seconds;returntext;522在JPanel中畫圖JPaiiel是一般輕量級容器,可以向JPanel容器中放入JPanehJTextfiled,JButtoii等。Swing的JPanel支持doublebuffering的功能,使得JPanel在處理動畫上更為流暢,較不會有畫面閃爍的情況發(fā)生。下面是此程序運用Jpanel畫圖的部分主要代碼:classMyPaiielextendsJPanel{protectedvoidpaintCompoiieut(Grapliicsg){Giaphics2Dg2d=(Grapliics2D)g;ctime.setText(gettiiiies(hours,minutes,seconds));//設(shè).置時間g.di'awlniage(iingl,(iut)paddle.xpaddle,(iut)(paddle.ypaddle),(iiit)paddle.width.(int)paddle.height,null);//畫板塊for(iutj=O;j<bnck[0].length;j++){//畫磚塊for(iuti=0;i<brick.length;i++){bnck[i]|j].xBnck=i*(800/m).bnck[i]|j].yBrick=j*(200/n);if(bnck[i]|j].alive==1){g.drawliiiage(iiiig2,(iut)bnck[i]|j].xBnck,(iiit)brick[i]|j].yBnck.(iiit)brick[i]|j].width,(iiit)brick[i]|j].heigli,null);}//畫球g2d,setPaint(iiewGiadientPaiut((iiit)balLxBalt(iiit)balLyBaltColorblue,(iiit)(balLxBall+balLr),(iiit)(balLvBall+balLr),Coloryellow,true)),g2d,fill(newEllipse2D.Double(balLxBaltbalLvBaltbalLi;ball』)),//畫寶物g.setColor(ColoLblack);for(hitk=0;k<treasure.lengtli;k++){if(treasure[k].alive=1){g.fill3DRect{(iut)treasure[k].xtreasure.(mt)treasure[k].ytreasure.(mt)treasure[k]Avidth,(mt)treasure[k].height,true);523用戶注冊登錄系統(tǒng)下面給出登錄功能的主要代碼publicvoidloginDialogQ{login=newJDialogQ;logiu.setTitleC登錄”);logiu.setLayout{newFlowLayoutO);logiu.add(iiewJLabel("用戶名:logiu.add(iiame);logiu.add(iiewJLabel("密 碼:"));passwoid?setEchoChar('*');logiu.add(passwoi'd);JButtoiiconfirm=newJButton("登錄");confirm.addActioiiListeiier(newActioiiListeiier(){publicvoidactioiiPerf6rmed(ActioiiEvente){newif (coiiipareUserData(iiaiiie.getText().trim(),newStnng(pass\vord.getPasswordO))){login,setVisible(false);f.setVisible(tnie);}else{JOptioiiPaiie.showMessageDialog(logiu,"用戶名或密碼錯誤!",“錯誤提示",JOptioiiPane.ERROR_MESSAGE);}}});logiu.add(confirm).finalJDialogregDialog=newJDialog(logiii,"注冊",true);registerDialog(regDialog);JButtoiiregister=newJBiHtoii("注冊");registeraddActioiiListeneiXuewActioiiListenerQ{publicvoidactioiiPerf6rmed(ActioiiEvente){regDialog.setVisible(tnie);}});logiu.add(i'egister);logiu.setSize(200,130);logiu.setResizable(false);logiu.setLocatioiiRelativelb(iiull);logiu.setVisible(tiiie);524游戲結(jié)果的存儲此功能將用戶游戲后的結(jié)果存入TXT文檔中關(guān)鍵代碼如下publicbooleansaveUserData(Stiingname,Stringsex,Stringpassword1,Stringpassword?){if(!password1.equals{password2))returnfalse;try{RaiidoiiiAccessFileout=newRaudoiiiAccessFileC'usertxt","rw");out.seek(out.leugthO);out.writeUTF(uanie);out.writeUTF(sex),out.writeUTF(password1);out.closeQ;}catch(lOExceptioiie){e.priutStackTraceO,returnfalse.returntrue;〃保存成績PublicvoidsaveScore(){try{RaiidoiiiAccessFileraf=newRaudoiiiAccessFile("score.txt"/W');Strings=String.valueOf(score);rafseek{raflengtli());rafwriteBytes("naiiie:"+nan】e?getText());rafwriteBytes("score:"+s+"");}catcli(IOExceptioue){}5.3本章小結(jié)本章介紹了程序的具體實現(xiàn)和部分關(guān)鍵代碼,包括自動計時,界面初始化和用Jpanel畫圖的部分源代碼,在這里我們對本程序有了更加深入徹底的了解。第6章結(jié)束語由于市場需要,游戲的更新速度步步加快,為了適應(yīng)社會的需要,社會對游戲開發(fā)人員的需求,在游戲編程的學習過程中,必須理論與實踐結(jié)合,提高編程能力與水平。通過小游戲的設(shè)計,對以學過的容加深理解,對游戲開發(fā)的過程有初步的認識,為以后的游戲開發(fā)設(shè)計和更加深入的學習計算機語言打下夯實的基礎(chǔ)。目前競爭日益激烈的行業(yè)環(huán)境,對于未來行業(yè)的前景,還是要保持樂觀的心態(tài)。畢竟游戲并不是一下子就可以編寫成的。需要不斷的技術(shù)積累,需要團隊的合作,提高了工作的效率,才算是在游戲開發(fā)的道路上成功了一半。在現(xiàn)在這個信息化飛速發(fā)展的道路上,要成為一名合格的編程人員,那就必須走好每一步現(xiàn)在的路?;贘ava的打磚塊小游戲,滿足了用戶娛樂的需求,已經(jīng)達到了預期的目標。雖然該游戲大部分功能基本上己經(jīng)實現(xiàn),但是還是會存在一些不足:(1)游戲中存在一些BUG,游戲中彈球有時不會下落,未碰到的磚塊卻自動消失了。游戲的關(guān)卡太少,樣式不夠多樣化,不能滿足用戶對該游戲的挑戰(zhàn)。游戲的色彩不夠多樣化,色彩單一,不能給用戶增加新鮮的娛樂感。對于用戶信息方面,由于該程序沒有涉及到數(shù)據(jù)庫的相關(guān)容,在用戶信息存儲,用戶信息更新功能方面表現(xiàn)欠佳。在用戶信息功能的方面有待進一步改善。致謝[1][2][3]參考文獻[1][2][3](美)埃克爾著昊鵬,饒若楠等譯.Java編程思想[J].機械工業(yè),2005(美)GaiyJ.B1OUSOU著瓏雅文譯.Jaw編程原理[J].清華大學,2004(美)MichaelMorrison著徐剛,于健,薛雷譯.游戲編程入門[J].人民郵電,2005.9(美)WendyStabler著馮寶坤,曹英譯.游戲編程中的數(shù)理應(yīng)用[J].紅旗,2005(美)克羅夫特(DavidWallaceCioft)著彭暉譯.Java游戲高級編程[J].清華大學,2005(美)DavidBiackeeu(美)DavidBiackeeu著邱仲潘譯.Java游戲編程[J].科學,2004聶慶亮編著.Java應(yīng)用開發(fā)指南[J].清華大學,2010耿祥義,躍平編著.Java面向?qū)ο蟪绦蛟O(shè)計[J].清華大學,2010紹方編著.Java編程實用技術(shù)與案例[J].清華大學,2000.11明日科技編著.Java編程全能詞典[J].電子工業(yè),2010[7][8][9][10]附錄源代碼此游戲包含8個java文件,Ball.java,Brick.java,Paddle.java,Treasure.java,Nextnew.java,SetMusic.java,SetSpeed.java,Game.java。Ball.javapackages;〃球publicclassBall{doublexBall=10,yBall=470,doublei-20;publicBall(){Brickjavapackages;〃磚塊publicclassBrick{doublexBnck=0,yBrick=0;doublewidth=60;doubleheigh=40;iutalive=0;iutistreasure=O;publicBrick。{Paddlejavapackages;〃檔板publicclassPaddle{publicdoublexpaddle=320;publicdoublewidth=150;publicdoublelieigIit=20,publicdoubleypaddle=435-height;Treasurejavapackages;〃寶物publicclassTreasure{iiitalive=0;doublextreasure=O,ytreasure=O,width=104ieiglit=10;publicTreasure(){NextNewJavapackages;〃下一關(guān)mipoitjava.applet.*;mipoitjava.awt.*;importjava.awt.event.*;importjavax?swing.*;publicclassNextNewextendsIFrameiinplementsActioiiListeuei{JPaiieljpO,JButtoiiok;JButtoiiquit;publicNextNew(){supeW打磚塊”);setSize(300,150);setLocatioii(300,300);setBackground(Color.white);jpO=uewJPanelQ;ok=newJButtou("確定”);quit=newJButtou("退出”);jpO.add(ok);jpO.add(quit),setLayout(uewBorderLayoutO),add("North",(iiewJPanelO).add(uewJLabel("恭喜你!過關(guān)了!")));add("Ceuter'\(new JPanelO).add(iiew JLabel("是否繼續(xù)下一關(guān)?*')));add("Soutli"jpO);setVisible{tnie);OverridepublicvoidactioiiPerfdrmed(ActiouEvente){//TODOAuto-geueratedmethodstubif(e.getSource()==ok){if(e.getSource()==quit){publicstaticvoidiiiaiii(Stiiiigarg[]){NextNewgameovei-uewNextNewQ;SetMusicjavapackages;mipoitjava.applet.*;mipoitjava.awt.*;importjava.awt.event.*;mipoitjava.io.*;importjavax?swing.*;publicclassSetMusicextendsJFrameiiiipleiiientsActioiiListeiiei;IteiiiListeuer{privatemtchoice=0;publicstaticStringsl=iiewStiing("Liiiid");privatebooleanfhststart=true;JPaiieljpl,JPaiieljp2;JPaiieljp3.JLabelBackMusic;JComboBoxSelectMusic;JButtoiiMusicStop;JLabelFireVoice,JButtoiiFVOpeii;JButtoiiFVClose;JButtoiiok;publicstaticSelectMusicmusic;publicSetMusic(){//supe”設(shè)置窗口”);setSize(300450);setLocatioii(300,300);setBackground(Color.white);niusic=newSelectMusicQ;jpl=iiewJPanelQ;jp2=iiewJPanelQ;jp3=iiewJPanelQ;BackMusic=uewJLabel("背景咅樂:");SelectMusic=newJCoiiiboBoxO;;MusicStop=newJButton("關(guān)閉");SelectMusic.addlteiiiListeiiei(tliis);MusicStop.addActioiiListenei(tliis);setLayout(uewBoiderLayoutQ),FireVbice=uewJLabel("碰撞聲音:和FVOpeu=newJButton("打開");FVClose=uewJButtou("關(guān)閉”);FVOpeu.addActioiiListeuer(tliis);FVClose.addActionListeuer(tliis);ok=newJButton("確定”);jp1.add(BackMusic),jp1.add(SelectMusic);jpl.add(MusicStop);MusicStop.setEuabled(false),SelectMusic.iiisenIteiiiAt("iiiusic-?\O);SelectMusic.iiisenIteiiiAt("iiiusic-2"4);SelectMusic.iiisenIteiiiAt("iiiusic-3",2);SelectMusic.iiisenIteiiiAt("iiiusic-4"3);SelectMusic.setSelectedliidex(O);add("North"jpl);jp2.add(FireVoice);jp2?add(FVOpeii);if(sl=="2.iiud"){music.Music1StopQ;}music.Music1StaitQ;if(SelectMusic?getSelectedItemO="iiiusic-3"){if(sl=="3.iiud"){music.Music1StopQ;}music.Music1StaitQ;if(SelectMusic.getSelectedItemO="iiiusic-4"){if(sl=="4.iiud"){music.Music1StopQ;}sl=**4.mid";music.Music1StaitQ;MusicStop.setEuabled(tnie);SelectMusic.setFocusable(false);SelectMusic.setEuabled(false),classSelectMusic{AudioClipml;publicvoidMusiclStait(){try{Filemusic=newFile(SetMusic.sl);ml=Applet.newAudioClip(music.toURL());ml.loopO;}catch(Exceptioiie){e.priutStackTrace(),}publicvoidMusic1StopQ{ml.stopO;classFireVbice{AudioClipm2;publicvoidMusic2Stail(){try{Filemusic=newFile("5.iiiid");m2=Applet.newAudioClip(music.toURL());m2?play();}一catch(Exceptioiie){e.priutStackTrace(),}publicvoidMusic2Stop(){ni2.stop0;SetSpeedJavapackages;mipoitjava.applet.*;mipoitjava.awt.*;importjava.awt.event.*;importjavax?swing.*;publicclassSetSpeedextendsJFrameiiiipleiiientsActioiiListeiiei;IteiiiListeiier{JPaiieljp_l;JPaiieljp_2;ButtonGioupgi'oup=newButtoiiGroup();publicstaticJRadioButtonspeed1;JRadioButtonspeed?;JRadioButtonspeed?;JRadioButtoiispeed4;JRadioButtoiispeed5;JButtouok;publicSetSpeed(){setTitleC設(shè)置速度”);setSize(500,150);setLocatioii(300,300);setBackground(Color.white);jp_l=newJPanelQ;jp_2=newJPanelQ;speedl=newJRadioButtoii("慢速");speed2=newJRadioButtoii("較慢");speed3=newJRadioButtoii("中速");speed4=newJRadioButtoii("較快");speed5=newJRadioButtoii("快速");ok=newJButtou("確定”);group.add(speedl),group.add(speed2),group.add(speed3),group.add(speed4),group.add(speed5),jp_l?add(speedl);jp_l?add(speed2);jp_l?add(speed3);jp_l?add(speed4);jp_l?add(speed5);jp_2?add(ok),setLayout(uewBoiderLayoutQ),add("North",(newJPanelO).add(uewJLabel("請選擇速度等級!")));add("Ceuter"Jp_l);add("Soutli",jp_2);Speed1,addItemListenei'(tIiis);speed2.addItemListenei'(tIiis);speed3.addltemListenei'(tliis);speed4?addltemListener(this);speed5.addItemListenei'(tIiis);ok.addActioiiListener(tliis);setVisible{false),OverridepublicvoidactioiiPerfdrmed(ActiouEvente){//TODOAuto-geueratedmethodstubif(e.getSource()==ok){disposeQ;OverridepublicvoiditemStateCliaiiged(IteiiiEveute){//TODOAuto-geueratedmethodstubif(e.getIteiiiO==speedl){Gaiiie.speed=100;elseif(e.getlteiii()==speed2){Gaiiie.speed=80;if(e.getIteiiiO==speed3){Gaiiie.speed=60;if(e.getlteiii()==speed4){Gaiiie.speed=40;if(e.getlteiii()==speed5){Gaiiie.speed=20;publicstaticiiitgetspeed(inttoolgate){return(Game.speed-toolgate*5);Gamejavapackages;importjava.applet.AudioClip;importjava.awt.BordeiLayout;importjava.awt.Color;importjava.awt.Coiitaiiier;importjava.awt.GradientPaiiit;importjava.awt.Graphics,importjava.awt.Grapliics2D;importjava.awt.event.*;importjava.awt.geoiii.Ellipse2D;mipoitjava.awt.iinage.Bufferedlmage;importjava.io.File;importjava.io.IOExceptiou;mipoitjava.io.*;importjavax.imageio,IiiiageIO;importjavax.swing,event.*;importjavax.swing.*;importjava.awt.BorderLayout;importjava.awt.Checkbox;importjava.awt.CheckboxGroup,importjava.awt.Color;importjava.awt.Coiitaiiier;importjava.awtTlowLayout;importjava.awt.Font;importjava.awt.GridLayout;importjava.awt.Toolkit;mipoitjava.awt.datatransferClipboard;mipoitjava.awt.datatransferDataFlavor,mipoitjava.awt.datatransfeLStringSelectiou;mipoitjava.awt.datatransferTransferable;mipoitjava.awt.datatraiisferUiisuppoitedFlavorExceptiou;importjava.awt.event.ActioiiEveut;mipoitjava.awt.event.ActioiiListener;importjava.awt.event.IuputEvent;importjava.awt.event.KevEvent;importjava.io.File;importjava.io.FileReader,importjava.io.FileWriter;importjava.io.IOExceptiou;importjava.io.RandoniAccessFile;mipoitjava.text.SiinpleDateFoniiat;importjava.util.Date;importjavax.swiiig.Box;importjavax.swingJButton;importjavax.swingJDialog;importjavax.swingJFraiiie,importjavax.swingJLabel;importjavax.swingJMeiiu;importjavax.swingJMenuBar;importjavax.swingJMenuItem;importjavax.swiiigJOptioiiPaiie;importjavax.swingJPauel;mipoitjavax.swingJPasswordField;importjavax.swingJSci'ollPane;importjavax.swing.JTextAiea;importjavax.swingJTextField;importjavax.swiiig.KeyStroke;importjavax.swiiig.Tuner;publicclassGameextendsJFranieiinpleiiientsRunnable,KeyListeiier,ActionListeiier{privateStrings=newSuing("打磚塊游戲");//定義組件JFiaiiieEJDialoglogin,addUser;JToolBartoolbar=newJToolBarQ;//工具欄JButtoiigstait=null;//開始按鈕JButtoiigstop=null;//暫停按鈕JButtoiigrestait=null;//重新開始按鈕JButtoiisetmusic=null;//設(shè)置音樂按鈕JButtoiisetspeed;〃設(shè)置速度按鈕JLabelctiine=null;//計時標簽JLabelclife=uuU;//生命標簽JLabelcscoie=uull;//分數(shù)標簽JCoiiiboBoxgiiiodel=null;//磚塊排列模型JCoiiiboBoxsetgate=null,//設(shè)置關(guān)卡filialJTextFieldname=newJTextField(lO);//filialJPasswordFieldpasswoid=newJPasswordField(10);//密碼//定義變量staticiiitspeed=100;//速度(全丿』靜態(tài))Staticbooleanisfire=true;//isfire為true時,有碰撞聲staticiiittoolgate=0,staticbooleanrespeed=false;iuthours=0,minutes=0,seconds=0;intm=&11=5;lutlife=3;//生命iutscore=0;//分數(shù)booleanisstop=tme;//開始暫停booleansetpaddle=true;booleansetball=tiue;lutmodel=1;//磚塊疊放的模型0為矩形1為三角形2為倒三角形3為空三角形4為六邊形//定義嵌入對象SetMusicGetMusic;//咅樂窗口SetSpeedsettiiigspeed;//速度窗口FireVoicefirevoice;//聲明碰撞聲音類Tlueadt=newTliread(tliis);//定義圖形Brickbnck[][]=null;//磚塊Ballball=newBallQ;//球Paddlepaddle=newPaddleQ,//板塊Treasure[]treasure=newTreasure[4];//寶物MyPaiielpanel;〃畫板Bufferedlinagemigl;//圖片Bufferedlinagemig2;/***構(gòu)造函數(shù)***/publicGame(){unto;〃登陸注冊界面PublicvoidlogiiiDialogO{login=newJDialogQ;logiu.setTitleC登錄");logiu.setLayout{newFlowLayoutO);logiu.add(iiewJLabel("用戶名:logiu.add(iiame);logiu.add(iiewJLabel("密 碼:"));passwoid?setEchoChar('*');logiu.add(passwoi'd);JButtoiiconfirm=newJButton("登錄");confirm.addActioiiListenei(newActioiiListeiier(){publicvoidactioiiPerfbrmed(ActioiiEveiite){newif (coiiipareUserData(iiaiiie.getText().trim(),newString(pass\vord.getPasswordO))){login,setVisible{false);f.setVisible(tnie);}else{JOptioiiPaiie.showMessageDialog(logiu,"用戶名或密碼錯誤!",“錯誤提示",JOptioiiPane.ERROR_MESSAGE);}}});logiu.add(coiifirm).finalJDialogregDialog=newJDialog(logiii,"注冊役true);registerDialog(regDialog);JButtoiiregister=newJButtou("注冊");registeraddActioiiListeneiXuewActioiiListenerQ{publicvoidactioiiPerfbrmed(ActioiiEvente){regDialog.setVisible(tnie);}});logiu.add(i'egister);logiu.setSize(200,130);logiu.setResizable(false);logiu.setLocatioiiRelativelb(null);logiu.setVisible(ti'ue);〃用戶名密碼的確認publicbooleancoiiipareUserData(Striugname.Stringpassword){try{RaiidoniAccessFileout=newRandoiiiAccessFile("useLtxt'\"rw");Stringfiianie,password=null;while(out.getFilePoiuterO<outJeugthQ){fiiaiiie=out.readUTFO;out.readUTFQ;取ssword=out.readUTFQ;if(fiiaiiie.equals(uame)&&fpasswoid.equals(password))returntrue;}out.closeQ;}catch(lOExceptioiie){e.priutStackTrace(),returnfalse.〃注冊用戶的信息publicvoidregisterDialog(fiiialJDialogregDialog){Boxboxl=Box.createVerticalBoxO;boxl.add(newJLabel(*'用戶名化JLabel.RIGHT));box1.add(Box.createVerticalSti'ut{10));boxl.add(newJLabel(*'性別:",JLabel.RIGHT));box1.add(Box.createVerticalSti'ut{10));boxLadd(newJLabel("密碼JLabeLRIGHT),-1);box1.add(Box.createVerticalSti'ut(10));boxLadd(newJLabel("確認密碼\JLabeLRIGHT));Boxbox2=Box.createVerticalBoxO;filialJTextFielduameTextField=newJTextField(lO);box2.add(uanieIextField);box2.add(Box.createVerticalSti'ut(8)),filialCheckboxGroupcbg=newCheckboxGroupO;Boxbox21=BoxxreateHorizontalBoxQ;filialCheckboxcbl=newCIieckbox("男",cbg.true);box21.add(cbl);box21.add(iie\vCheckbox("女役cbg.false));box2.add(box21),box2.add(Box.createVerticalSti'ut(8));filialJPasswordFieldpassl=newJPasswoidField(lO);box2.add(passl),box2.add(Box.createVerticalSti'ut(8));filialJPasswordFieldpass2=newJPasswoidField(lO);box2.add(pass2).BoxbaseBox=Box.createHorizoiitalBoxO;baseBox.add(box1);baseBox?add(box2);regDialog.setLayout(newFlowLayout());regDialog.add(baseBox);JButtouconfirm=newJButtoii("確定");JButtoucancel=newJButtou("取消");regDialog.add(coufiriii);regDialog.add(cancel);regDialog.setSize(200,200),regDialog.setResizable(false);regDialog.setLocatiouRelativeTo(iiull);confiini,addActionListeiier(newActioiiListenerQ{publicvoidactioiiPerf6rmed(ActioiiEventargO){Stringsex=null;if(cbg.getSelectedCheckboxQ=cbl)sex="男";elsesex="女”;

newif(saveUserData(iiameTextField.getText().trim(),sex,new Stiiiig(pass1.getPassword()),newStnng(pass2.getPasswordO)))legDialog.setVisible(ftilse);elseJOptioiiPaiie.showMessageDialog(regDialog,"輸入有誤,請檢查”「錯誤提示役JOptioiiPaiie.ERROR_MESSAGE);}});caiiceLaddActioiiListeiier(iiewActioiiListeiierO{publicvoidactioiiPerf6rmed(ActioiiEventargO){regDialog.setVisible(false),}});/***初始化變量***/publicvoidinitvaiiable(){hours=0;nunutes=0;seconds=0,speed=Setspeed?getspeed(toolgate),life=3;isstop=true;setpaddle=true;setball=true;model=0;switch(toolgate){case0:m=4;n=5;ball.i-=30;paddle.width=150;uy{img2=IniageIO.read(iiewFile("ljpg"));}catch(lOExceptionel){el.prmtStackTraceQ;}break;case1:m=8;n=5;ball.i-=20;paddle.width=120;uy{img2=ImageIO?Tead(newFile("2jpg"));}catch(lOExceptionel){e1.priiitStackTraceO;}break;default:m=16;n=5;ball.r=10;paddle.width=90;uy{img2=ImageIO?Tead(newFile("3jpg")),}catch(lOExceptionel){e1.priiitStackTraceO;}balLxBall=paddle.xpaddle+paddle.width*0.5;balLvBall=paddle.ypaddle-balLr,brick=newBnck[m][n];for(lilta=0;a<treasure.length;a++){treasure[a]=newTreasureQ,k=newiiit[4];for(lilta=0;a<kleugth;a++){k[a]=(int)(Math.randomQ*(in*ii)).for(liltj=0;j<bnck[0].length;j++){for(lilti=0;i<brickJengtli;i++){bnck[i]|j]=newBiick();bnck[i]|j].width=800/iii;bnck[i]|j].lieigli=200/ii;bnck[i]|j].alive=1;for(iiita=0;a<k.length;a++){if(i*j=k[a]){blick[i]|j].istreasure=a+1;try{iiiigl=IiiiagelO.read(newFile("ljpg"));}catch(lOExceptioiie){e.printStackTraceO,/***主界面初始化函數(shù)***/publicvoidmit(){iiiin^ariableQ;GetMusic=newSetMusicQ;//開啟音樂settingspeed=newSetSpeedQ;//初始化速度設(shè)置窗口firevoice=newFireVoiceQ;//設(shè)置窗體setSize(800,500);setBackground(Color.white);panel=newMyPauelQ;tliis.setResizable(false);tliis.setLocation(200,200);ContainercoiitentPaiie=getContentPaiie(),contentPaiie.setLayout(newBorderLayoutQ);tliis.setTitle(s),//初始化按鈕gstait=newJButtoii("開始”);gstop=newJButtoii("暫停");giestait=newJButtoii("重新開始”);setmusic=newJButtou("設(shè)置音樂”);setspeed=newJButtou("設(shè)置速度");//初始化計時標簽ctiiiie=newJLabel("計時:00:00:00”);clife=newJLabel(”生命:3“);cscore=newJLabel("分數(shù):0");//初始化下拉欄Striug[]smodel={”模型1","模型2","模型3”,”模型4","模型5"};giiiodel=newJComboBox(siiiodel);Striug[]sgate={"^1關(guān)T第2關(guān)丁第3關(guān)丁第4關(guān)丁第5關(guān)”};setgate=newJComboBox(sgate);//將組件添加到工具欄toolbaLadd(gstart);toolbar.addSeparatorO;//^加分隔欄toolbaLadd(gstop);toolbar.addSeparator();〃添加分隔欄toolbaLadd(gi'estail);toolbar.addSeparatorO;//^加分隔欄toolbaLadd(setiiiusic);toolbar.addSeparatorO;//^加分隔欄toolbaLadd(setspeed);toolbar.addSeparatorO;//^加分隔欄toolbaradd(giiiodel);toolbar.addSeparatorO;//^加分隔欄toolbaLadd(setgate);toolbar.addSeparatorO;//^加分隔欄toolbaLadd(ctime);toolbar.addSeparatorO;//^加分隔欄toolbaLadd(clife),toolbar.addSeparatorO;//^加分隔欄toolbaLadd(cscore);//添加組ft到畫寂contentPaiie.add(toolbar,BorderLayout.NORTH),contentPaiie.add(pai

溫馨提示

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

評論

0/150

提交評論