付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.将算法与界面结合起来用布局和按钮来实现算法的界面 上面已经说完了算法,相信大家也迫不及待的想进入界面的设计了吧,好了,多的不说,我们开始吧。 既然我们的算法是基于二维数组的,那么我们也应该在界面使用一个能反映二维数组的控件。这里有两种方式,一种使用表格来实现,第二种是使用布局来实现。 相对而言,用表格来实现二维数组要简单一些, JAVA 提供的布局方式可能是令大家都不习惯的一种界面设计方式,不过,在这里,我还是选用了布局的方式来实现界面,因为,当你设计完界面后,你会发现 JAVA 的布局也是有它的优点的。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 控件来将算法中二维数组中每个元素的值区别出来,最简单的就是用不同的数字来显示,有了这个功能后,我们就可以很方便的实现界面与算法的同步了。/ 根据数组来绘置画面 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 布局,我们需要注意的就是先算计好每个区域所需要尺寸的大小,并且使用 JPanel 的 setPreferredSize 方法来固定好大小,同时,根据自己的需要,添加命令按钮如开始、退出等。为用户界面添加功能 用户界面的设计已经出来了,但是相应的功能我们还没有实现,现在,让我们来一起实现这些功能吧。 同样,我们还是参照一下别人游戏中有哪些功能,并且根据自己的需要来进行选择,在这里,我们只需要提供开始游戏、刷新地图、提示、炸弹等功能就好了(其它的暂时可以不管,以后需要的时候可以再添加)。开始游戏: 当用户开始游戏的时候,我们需要将地图初始化并且显示出游戏界面 。 刷新地图: 此功能我们在算法部分中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026四川自贡市沿滩区就业创业促进中心招聘高校毕业生公共服务岗7人备考题库附参考答案详解【基础题】
- 2026西北工业大学无人系统发展战略研究中心招聘1人(陕西)参考题库(有一套)附答案详解
- 防水施工方案
- 简阳市社会保险事务中心关于公开招聘编外人员的模拟试卷及答案详解(易错题)
- 2026年福建省厦门市集美职业技术学校非编教师6名招聘简章备考题库及答案详解(全优)
- 2026商洛市商丹高级中学教师招聘参考题库(A卷)附答案详解
- 重庆市巴南区部分校2025-2026学年七年级下学期期末模拟定时作业生物试卷(含解析)
- 食品安全追溯体系建设标准方案
- 智能制造车间产线数字化转型方案
- 电商客服话术标准化及情景模拟方案
- 2026福建泉州晋江市市场监督管理局招聘编外工作人员16人考试备考试题及答案详解
- 2026年地方病控制副主任医师试题解析及答案
- 【新教材】统编版(2024)八年级下册道德与法治全册知识点背诵提纲(表格式)
- 2026龙江银行县域支行招聘43人备考题库及答案详解一套
- 血透室感染监测采样方法
- 2026年四川水电投资经营集团招聘题汇 总笔试试题
- 2025年江苏辅警面试试题及答案
- 2026年履带吊车行业分析报告及未来发展趋势报告
- 2026年IPA国际注册对外汉语教师资格认证考试真题含答案
- 2026年乡村振兴专干考试题库
- 销售项目奖惩制度
评论
0/150
提交评论