14Java第十四次课 五子棋的实现1
1 创建一个UI类,画出一个界面
2 在窗体上画棋盘
在paint方法中写,可参考第十一次课
设置棋盘每个格子的长和宽都是50个像素,棋盘就是一系列平行的横线和竖线
由于棋盘上的位置尺寸等信息在后面要用,这里可以将棋盘相关的参数定义为变量,写在一个接口中。
复习一下接口:第十次课中有说过,接口的属性必须是常量,默认由static final修饰。
3 设置窗体背景颜色
注意:paint方法在窗体初始化的时候自动调用,不需要单独在主函数中调用;窗体改变时也会调用,具体的改变比如:拉伸窗体大小等;
4 实现鼠标监听器
这是原本的格式,为了减少代码,可以改为继承MouseAdapter类,只要重写需要的接口类即可,不用全部重写了。
在initUI中创建监听器实现类的对象gl,将窗体的画笔传到监听器中,给窗体添加监听器
现在点击窗体的任意位置都可以画出一个黑色的实心圆,但是鼠标的位置不是圆的中点。可以在监听器中修改一下画圆的坐标
现在任意点击一个位置就能以该位置为圆心画一个实心圆
待改进:不能自动画在棋盘横竖线交叉点上
5 实现黑白棋交替
在监听器的实现类中写
待解决:拖动窗体图形不会消失——重绘
6 添加功能按钮
之前的流式布局在这里不适用,会把棋盘挡住,可以把按钮放在棋盘的旁边,这里使用空布局——可以自定义位置和尺寸
开始游戏按钮
initUI中添加按钮和设置布局
修改一下棋盘颜色尺寸
某方先下按钮
这里使用单选按钮——前面带圈,选中变实心——JRadioButton
对应复选框——前面带框,选中显示√的——JCheckBox
7 给所有的按钮添加动作监听器——监听器的联动
可以参考第九次课
首先点击“开始游戏”,然后选择黑棋先下或者白棋先下。只点击开始游戏无法开始,必须先点击开始游戏然后选择黑棋先下或者白棋先下。
bug:不点击“开始游戏”直接选择黑白棋,也可以画图
14Java第十四次课 五子棋的实现1相关推荐
- 风炫安全WEB安全学习第四十四节课 敏感信息泄漏
第四十四节课 敏感信息泄漏 敏感信息泄漏 0x01 漏洞简介 敏感数据包括但不限于:口令.密钥.证书.会话标识.License.隐私数据(如短消息的内容).授权凭据.个人数据(如姓名.住址.电话等)等 ...
- 第十四节课特种障碍赛
第十四节课特种障碍赛 一.齐步踏步 想不想教官呀!"想"教官今天过来又给小朋友们带来了好玩的游戏,你们想不想玩"想"今天我们要进行特种障碍赛的比赛,首先我们先复 ...
- 《证券投资二十四堂课》读书笔记
友情提示:技术分析有一个致命弱点,即掌握它的人越多,它的效果就越差,因为技术的掌握会反过来影响人的行为. 第一课 投资者入市须知 股市投资的第一要则:止损 定义止损:对新手10%,对使用图表买卖8% ...
- JSP第十四次课:JSP项目开发高级操作2---在线编辑器应用及前台首页显示商品
一.在线编辑器KindEditor下载 下载 KindEditor 最新版本,下载之后打开 examples/index.html 就可以看到演示. 下载页面: http://www.kindsoft ...
- Linux就该这么学第十四节课学习心得
Ansible是最近几年特别火的一款开源运维自动化工具,它能够帮助运维人员肉眼可见地提高工作效率,并减少人为失误.Ansible有上千个功能丰富且实用的模块,而且有详尽的帮助信息可供查阅,因此即便是小 ...
- 2021/5/20爬虫第十四次课(selenium页面等待,打开多窗口)
文章目录 一.页面等待 二.打开多窗口和切换页面 三.案例(获取12306购票订单) 四.类知识点回顾 五.补充小知识点 一.页面等待 现在的网页越来越多采用了 Ajax 技术,这样程序便不能确定何时 ...
- 【java】兴唐第二十四节课
HashMap中put函数的源码分析: (一)知识点: 1.方法resize()的作用是扩容 2. if ((p = tab[i = (n - 1) & hash]) == null) 其中n ...
- 学习笔记第三十四节课
rsync工具介绍 这个是个同步的工具,这个几乎每天都能用到. 类似于cp 和cp不一样.不同机器传输文件,备份, 同台机器,A-B目录传输都可以. 假设有一个A目录 和一个B目录 现在把A拷贝到B下 ...
- 孙鑫mfc学习笔记第十四课
第十四课 网络的相关知识,网络程序的编写,Socket是连接应用程序与网络驱动程序的桥梁,Socket在应用程序中创建,通过bind与驱动程序建立关系.此后,应用程序送给Socket的数据,由Sock ...
最新文章
- 一行命令,瞬间从“马赛克”到高清影像
- 政务大数据共享难题的破解路径有哪些?
- 匿名内部类,就是内部类的简写格式。
- 2015-10-21 C#1
- 计算机控制系统的试题,计算机控制系统练习题(1)
- HDU2159 研发费用背包
- 关于SubSonic3.0插件使用SubSonic.Query.Select查询时,字段类型为tinyint时列丢失问题的Bug修复...
- 建行提示找不到服务器,中国建设银行E路护航网银安全组件常见问题解答
- 经典混响插件免安装+50拓展 – Audio Ease Altiverb 7 XL 7.2.8 WiN
- 怎么在计算机登录VMware,vmware虚拟机怎么用,vmware虚拟机的使用方法
- ROS(RouterOS)实现一线多拨+负载均衡(多图)
- php的解析别名,浅谈laravel aliases别名的原理
- 【Linux】——用户账号和组账号
- 图像修复 : ICCV 2021 基于条件纹理和结构并行生成的图像修复【翻译】
- conda命令下载包报错总结
- 前端js、功能性工具插件网站(持续更新,欢迎分享)
- POJ1502 信息传递(单源最短路径)
- Python 使用摄像头监测心率!这么强吗?
- 脚手架是什么你真知道吗?---kalrry
- 从三次工业革命到思维导图
热门文章
- CDA数据分析师level2(模拟题考点记录)
- 3w最简单led灯电路图_三种常用的LED驱动电源电路图详解
- 健身知识 / 动作图解(待全)
- 人工智能:智慧环保(上海AI智慧环保,绿色新时代)
- 所有用户登陆后都在桌面上显示计算机图标,如何在Win10桌面上显示计算机.控制面板.网络.用户的文件图标?...
- [腾讯校招] 微信红包
- 手机耳机插入电脑没有反应
- Windows7/10耳机插入前面板没反应的解决方案
- LANDESK桌面管理软件
- 如何过滤出已知当前目录下/llj中的所有一级目录?