
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、.將算法與界面結合起來用布局和按鈕來實現算法的界面 上面已經說完了算法,相信大家也迫不及待的想進入界面的設計了吧,好了,多的不說,我們開始吧。 既然我們的算法是基于二維數組的,那么我們也應該在界面使用一個能反映二維數組的控件。這里有兩種方式,一種使用表格來實現,第二種是使用布局來實現。 相對而言,用表格來實現二維數組要簡單一些, JAVA 提供的布局方式可能是令大家都不習慣的一種界面設計方式,不過,在這里,我還是選用了布局的方式來實現界面,因為,當你設計完界面后,你會發(fā)現 JAVA 的布局也是有它的優(yōu)點的。JAVA 提供了 BorderLyout 、 GridLayout 、 FlowLayo
2、ut 等布局,而在這些布局中, GridLayout 布局是最接近于表格方式的一種布局,同時,我們使用 utton 控件來作為數組中的元素。/MapUI.java public class MapUI extends JPanel implements ActionListener utton dots = new uttonSetting.ROW * Setting.COLUMN; public MapUI() / 設計布局 GridLayout gridLayout = new GridLayout(); gridLayout.setRows(Setting.ROW); gridLayou
3、t.setColumns(Setting.COLUMN); gridLayout.setHgap(2); / 設置縱向間距 gridLayout.setVgap(2); / 設置橫向間距 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); 當然了,上面的代碼太簡單了,簡單得連一些基本的事情也沒有做,比如說在按鈕上加上文字,并且,要保證每個按鈕上的文字與算法中二維數組中相對位置的元素的值相對應。現在我們運行一下看看,怎么樣,像不像.界面出來了,那我們怎么知道用戶點擊的是哪個按鈕呢。其實這也不難的,我們在放置按鈕的時候,對每個按鈕的 mandName 屬性賦一個值,通過這個值,我們就可以知道該按鈕對應二維數組中元素的具體位置了,現在,我們按放置按鈕的代碼改動一下:/ 放置按鈕 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); 在按鈕的事情處理中,再把這個值取出來,并且還原到坐標上, 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; 怎么樣,是不是如此簡單.已經知道了用戶是按的哪個按鈕,并且知道了該按鈕對應的二維數組中的值,剩下的事情就不用我說了吧:) 現在,我們需要用 utton 控件來將算法中二維數組中每個元素的值區(qū)別出來,最簡單的就是用不同的數字來顯示,有了這個功能后,我們就可以很方便的實現界面與算法的同步了。/ 根據數組來繪置畫面 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); 設計用戶界面 好了,到現在為止,不管怎么說,我們已經大體上實現了與
8、算法有關的界面,雖然還很難看,但總算是有了個界面,也算是對自己的一點安慰吧。 現在,我們要設計用戶的界面了,用戶的界面也無需讓我們多考慮了,既然已經有現成的,我們就抄吧(其實是我天生缺乏美術天份,與其自己做得難看,還不如抄抄別人現成的)。這部分沒有太多要說的,我就用圖來說明一下吧。同樣,整個界面也是使用了 JAVA 提供的布局方式,這里使用的是 BorderLayout 布局,我們需要注意的就是先算計好每個區(qū)域所需要尺寸的大小,并且使用 JPanel 的 setPreferredSize 方法來固定好大小,同時,根據自己的需要,添加命令按鈕如開始、退出等。為用戶界面添加功能 用戶界面的設計已經出來了,但是相應的功能我們還沒有實現,現在,讓我們來一起實現這些功能吧。 同樣,我們還是參照一下別人游戲中有哪些功能,并且根據自己的需要來進行選擇,在這里,我們只需要提供開始游戲、刷新地圖、提示、炸彈等功能就好了(其它的暫時可以不管,以后需要的時候可以再添加)。開始游戲: 當用戶開始游戲的時候,我們需要將地圖初始化并且顯示出游戲界面 。 刷新地圖: 此功能我們在算法部分中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湛江市重點中學2025屆物理高二下期末質量跟蹤監(jiān)視模擬試題含解析
- 實際進度與計劃進度的比較方法
- 心理健康課程解碼學生內心世界
- 教育智能化在商業(yè)領域的拓展
- 中職教師課件制作
- 學生自我效能感的培養(yǎng)與教育心理學
- 心理引導促進學生自主學習的新路徑
- 學生自我激勵能力的教育心理學培養(yǎng)
- 智慧城市基礎設施的安全風險管理與應對
- 智慧城市構建氟塑料線纜的貢獻與挑戰(zhàn)
- 律所-人才激勵方案(3篇)
- 2025至2030 中國熱成型鋼(PHS)行業(yè)現狀調查與前景策略研究報告
- 加油站安全生產隱患排查治理制度
- 中國熱射病診斷與治療指南(2025版)
- 藝術哲學:美是如何誕生的學習通超星期末考試答案章節(jié)答案2024年
- 大學英語四級考試高頻詞匯1500
- (高清版)TDT 1056-2019 縣級國土資源調查生產成本定額
- 小學古詩詞大賽-九宮格練習課件
- 醫(yī)院(診所)門診病人登記簿表格模板
- 10kV電氣試驗方案
- (高清正版)T-CAGHP 021—2018泥石流防治工程設計規(guī)范(試行)
評論
0/150
提交評論