
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.將算法與界面結(jié)合起來用布局和按鈕來實(shí)現(xiàn)算法的界面 上面已經(jīng)說完了算法,相信大家也迫不及待的想進(jìn)入界面的設(shè)計(jì)了吧,好了,多的不說,我們開始吧。 既然我們的算法是基于二維數(shù)組的,那么我們也應(yīng)該在界面使用一個(gè)能反映二維數(shù)組的控件。這里有兩種方式,一種使用表格來實(shí)現(xiàn),第二種是使用布局來實(shí)現(xiàn)。 相對(duì)而言,用表格來實(shí)現(xiàn)二維數(shù)組要簡(jiǎn)單一些, JAVA 提供的布局方式可能是令大家都不習(xí)慣的一種界面設(shè)計(jì)方式,不過,在這里,我還是選用了布局的方式來實(shí)現(xiàn)界面,因?yàn)椋?dāng)你設(shè)計(jì)完界面后,你會(huì)發(fā)現(xiàn) JAVA 的布局也是有它的優(yōu)點(diǎn)的。JAVA 提供了 BorderLyout 、 GridLayout 、 FlowLayo
2、ut 等布局,而在這些布局中, GridLayout 布局是最接近于表格方式的一種布局,同時(shí),我們使用 utton 控件來作為數(shù)組中的元素。/MapUI.java public class MapUI extends JPanel implements ActionListener utton dots = new uttonSetting.ROW * Setting.COLUMN; public MapUI() / 設(shè)計(jì)布局 GridLayout gridLayout = new GridLayout(); gridLayout.setRows(Setting.ROW); gridLayou
3、t.setColumns(Setting.COLUMN); gridLayout.setHgap(2); / 設(shè)置縱向間距 gridLayout.setVgap(2); / 設(shè)置橫向間距 this.setLayout(gridLayout); / 放置按鈕 for (int row = 0; row < Setting.ROW; row+) for (int col = 0; col < Setting.COLUMN; col+) int index = row * Setting.COLUMN + col; dotsindex.addActionListener(this); /
4、 添加事件處理 this.add(dotsindex); 當(dāng)然了,上面的代碼太簡(jiǎn)單了,簡(jiǎn)單得連一些基本的事情也沒有做,比如說在按鈕上加上文字,并且,要保證每個(gè)按鈕上的文字與算法中二維數(shù)組中相對(duì)位置的元素的值相對(duì)應(yīng)?,F(xiàn)在我們運(yùn)行一下看看,怎么樣,像不像.界面出來了,那我們?cè)趺粗烙脩酎c(diǎn)擊的是哪個(gè)按鈕呢。其實(shí)這也不難的,我們?cè)诜胖冒粹o的時(shí)候,對(duì)每個(gè)按鈕的 mandName 屬性賦一個(gè)值,通過這個(gè)值,我們就可以知道該按鈕對(duì)應(yīng)二維數(shù)組中元素的具體位置了,現(xiàn)在,我們按放置按鈕的代碼改動(dòng)一下:/ 放置按鈕 for (int row = 0; row < Setting.ROW; row+) for
5、(int col = 0; col < Setting.COLUMN; col+) int index = row * Setting.COLUMN + col; dots.setActionmand(" + i); 在按鈕的事情處理中,再把這個(gè)值取出來,并且還原到坐標(biāo)上, public void actionPerformed(ActionEvent e) utton button = (utton) e.getSource(); int offset = Integer.parseInt(button.getActionmand(); int row, col; row =
6、 Math.round(offset / Setting.COLUMN); col = offset - row * Setting.COLUMN; 怎么樣,是不是如此簡(jiǎn)單.已經(jīng)知道了用戶是按的哪個(gè)按鈕,并且知道了該按鈕對(duì)應(yīng)的二維數(shù)組中的值,剩下的事情就不用我說了吧:) 現(xiàn)在,我們需要用 utton 控件來將算法中二維數(shù)組中每個(gè)元素的值區(qū)別出來,最簡(jiǎn)單的就是用不同的數(shù)字來顯示,有了這個(gè)功能后,我們就可以很方便的實(shí)現(xiàn)界面與算法的同步了。/ 根據(jù)數(shù)組來繪置畫面 private void paint() for (int row = 0; row < Setting.ROW; row+) fo
7、r (int col = 0; col < Setting.COLUMN; col+) int index = row * Setting.COLUMN + col; if (map.getMap()rowcol > 0) dotsindex.setIcon(Kyodai.BlocksIconmap.getMap()rowcol - 1); dotsindex.setEnabled(true); else dotsindex.setIcon(null); dotsindex.setText(“” + index); 設(shè)計(jì)用戶界面 好了,到現(xiàn)在為止,不管怎么說,我們已經(jīng)大體上實(shí)現(xiàn)了與
8、算法有關(guān)的界面,雖然還很難看,但總算是有了個(gè)界面,也算是對(duì)自己的一點(diǎn)安慰吧。 現(xiàn)在,我們要設(shè)計(jì)用戶的界面了,用戶的界面也無需讓我們多考慮了,既然已經(jīng)有現(xiàn)成的,我們就抄吧(其實(shí)是我天生缺乏美術(shù)天份,與其自己做得難看,還不如抄抄別人現(xiàn)成的)。這部分沒有太多要說的,我就用圖來說明一下吧。同樣,整個(gè)界面也是使用了 JAVA 提供的布局方式,這里使用的是 BorderLayout 布局,我們需要注意的就是先算計(jì)好每個(gè)區(qū)域所需要尺寸的大小,并且使用 JPanel 的 setPreferredSize 方法來固定好大小,同時(shí),根據(jù)自己的需要,添加命令按鈕如開始、退出等。為用戶界面添加功能 用戶界面的設(shè)計(jì)已經(jīng)出來了,但是相應(yīng)的功能我們還沒有實(shí)現(xiàn),現(xiàn)在,讓我們來一起實(shí)現(xiàn)這些功能吧。 同樣,我們還是參照一下別人游戲中有哪些功能,并且根據(jù)自己的需要來進(jìn)行選擇,在這里,我們只需要提供開始游戲、刷新地圖、提示、炸彈等功能就好了(其它的暫時(shí)可以不管,以后需要的時(shí)候可以再添加)。開始游戲: 當(dāng)用戶開始游戲的時(shí)候,我們需要將地圖初始化并且顯示出游戲界面 。 刷新地圖: 此功能我們?cè)谒惴ú糠种?/p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 北師大版四年級(jí)數(shù)學(xué)下冊(cè)認(rèn)識(shí)方程練習(xí)題
- 全州縣2024-2025學(xué)年六年級(jí)下學(xué)期小升初招生數(shù)學(xué)試卷含解析
- 四川工業(yè)科技學(xué)院《現(xiàn)代模具制造》2023-2024學(xué)年第二學(xué)期期末試卷
- 西藏拉薩北京實(shí)驗(yàn)中學(xué)2025年初三年級(jí)語文試題月考試卷含解析
- 南充電影工業(yè)職業(yè)學(xué)院《安裝工程施工技術(shù)與造價(jià)審計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 石家莊市重點(diǎn)中學(xué)2025屆初三下學(xué)期9月月考化學(xué)試題試卷含解析
- 武漢工程職業(yè)技術(shù)學(xué)院《電動(dòng)汽車故障檢測(cè)與診斷》2023-2024學(xué)年第二學(xué)期期末試卷
- 西藏山南地區(qū)扎囊縣2024-2025學(xué)年四下數(shù)學(xué)期末學(xué)業(yè)水平測(cè)試模擬試題含解析
- 四川美術(shù)學(xué)院《在經(jīng)濟(jì)統(tǒng)計(jì)中的應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 山西財(cái)經(jīng)大學(xué)《現(xiàn)代交換原理與技術(shù)實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 安全風(fēng)險(xiǎn)分級(jí)管控與隱患排查治理雙重預(yù)防體系-污水處理廠模板
- 2024年廣東省中考?xì)v史試卷試題真題及答案(精校打印版)
- 2024年保密教育線上培訓(xùn)考試題目附答案
- SH/T 3227-2024 石油化工裝置固定水噴霧和水(泡沫)噴淋滅火系統(tǒng)技術(shù)標(biāo)準(zhǔn)(正式版)
- YY/T 0331-2024脫脂棉紗布、脫脂棉粘膠混紡紗布的性能要求和試驗(yàn)方法
- (高清版)TDT 1056-2019 縣級(jí)國土資源調(diào)查生產(chǎn)成本定額
- 人工智能科普講解
- 第5課《平安校園靠大家》課件
- 國企統(tǒng)戰(zhàn)工作總結(jié)匯報(bào)
- 《含能材料與應(yīng)用》課件
- 土地管理法實(shí)施條例考試試題
評(píng)論
0/150
提交評(píng)論