1 创建一个UI类,画出一个界面

2 在窗体上画棋盘

在paint方法中写,可参考第十一次课

设置棋盘每个格子的长和宽都是50个像素,棋盘就是一系列平行的横线和竖线

由于棋盘上的位置尺寸等信息在后面要用,这里可以将棋盘相关的参数定义为变量,写在一个接口中。

复习一下接口:第十次课中有说过,接口的属性必须是常量,默认由static final修饰。

3 设置窗体背景颜色

注意:paint方法在窗体初始化的时候自动调用,不需要单独在主函数中调用;窗体改变时也会调用,具体的改变比如:拉伸窗体大小等;

4 实现鼠标监听器

这是原本的格式,为了减少代码,可以改为继承MouseAdapter类,只要重写需要的接口类即可,不用全部重写了。

在initUI中创建监听器实现类的对象gl,将窗体的画笔传到监听器中,给窗体添加监听器

现在点击窗体的任意位置都可以画出一个黑色的实心圆,但是鼠标的位置不是圆的中点。可以在监听器中修改一下画圆的坐标

现在任意点击一个位置就能以该位置为圆心画一个实心圆

待改进:不能自动画在棋盘横竖线交叉点上

5 实现黑白棋交替

在监听器的实现类中写

待解决:拖动窗体图形不会消失——重绘

6 添加功能按钮

之前的流式布局在这里不适用,会把棋盘挡住,可以把按钮放在棋盘的旁边,这里使用空布局——可以自定义位置和尺寸

开始游戏按钮

initUI中添加按钮和设置布局

修改一下棋盘颜色尺寸

某方先下按钮

这里使用单选按钮——前面带圈,选中变实心——JRadioButton

对应复选框——前面带框,选中显示√的——JCheckBox

7 给所有的按钮添加动作监听器——监听器的联动

可以参考第九次课

首先点击“开始游戏”,然后选择黑棋先下或者白棋先下。只点击开始游戏无法开始,必须先点击开始游戏然后选择黑棋先下或者白棋先下。

bug:不点击“开始游戏”直接选择黑白棋,也可以画图

14Java第十四次课 五子棋的实现1相关推荐

  1. 风炫安全WEB安全学习第四十四节课 敏感信息泄漏

    第四十四节课 敏感信息泄漏 敏感信息泄漏 0x01 漏洞简介 敏感数据包括但不限于:口令.密钥.证书.会话标识.License.隐私数据(如短消息的内容).授权凭据.个人数据(如姓名.住址.电话等)等 ...

  2. 第十四节课特种障碍赛

    第十四节课特种障碍赛 一.齐步踏步 想不想教官呀!"想"教官今天过来又给小朋友们带来了好玩的游戏,你们想不想玩"想"今天我们要进行特种障碍赛的比赛,首先我们先复 ...

  3. 《证券投资二十四堂课》读书笔记

    友情提示:技术分析有一个致命弱点,即掌握它的人越多,它的效果就越差,因为技术的掌握会反过来影响人的行为. 第一课 投资者入市须知 股市投资的第一要则:止损 定义止损:对新手10%,对使用图表买卖8% ...

  4. JSP第十四次课:JSP项目开发高级操作2---在线编辑器应用及前台首页显示商品

    一.在线编辑器KindEditor下载 下载 KindEditor 最新版本,下载之后打开 examples/index.html 就可以看到演示. 下载页面: http://www.kindsoft ...

  5. Linux就该这么学第十四节课学习心得

    Ansible是最近几年特别火的一款开源运维自动化工具,它能够帮助运维人员肉眼可见地提高工作效率,并减少人为失误.Ansible有上千个功能丰富且实用的模块,而且有详尽的帮助信息可供查阅,因此即便是小 ...

  6. 2021/5/20爬虫第十四次课(selenium页面等待,打开多窗口)

    文章目录 一.页面等待 二.打开多窗口和切换页面 三.案例(获取12306购票订单) 四.类知识点回顾 五.补充小知识点 一.页面等待 现在的网页越来越多采用了 Ajax 技术,这样程序便不能确定何时 ...

  7. 【java】兴唐第二十四节课

    HashMap中put函数的源码分析: (一)知识点: 1.方法resize()的作用是扩容 2. if ((p = tab[i = (n - 1) & hash]) == null) 其中n ...

  8. 学习笔记第三十四节课

    rsync工具介绍 这个是个同步的工具,这个几乎每天都能用到. 类似于cp 和cp不一样.不同机器传输文件,备份, 同台机器,A-B目录传输都可以. 假设有一个A目录 和一个B目录 现在把A拷贝到B下 ...

  9. 孙鑫mfc学习笔记第十四课

    第十四课 网络的相关知识,网络程序的编写,Socket是连接应用程序与网络驱动程序的桥梁,Socket在应用程序中创建,通过bind与驱动程序建立关系.此后,应用程序送给Socket的数据,由Sock ...

最新文章

  1. 一行命令,瞬间从“马赛克”到高清影像
  2. 政务大数据共享难题的破解路径有哪些?
  3. 匿名内部类,就是内部类的简写格式。
  4. 2015-10-21 C#1
  5. 计算机控制系统的试题,计算机控制系统练习题(1)
  6. HDU2159 研发费用背包
  7. 关于SubSonic3.0插件使用SubSonic.Query.Select查询时,字段类型为tinyint时列丢失问题的Bug修复...
  8. 建行提示找不到服务器,中国建设银行E路护航网银安全组件常见问题解答
  9. 经典混响插件免安装+50拓展 – Audio Ease Altiverb 7 XL 7.2.8 WiN
  10. 怎么在计算机登录VMware,vmware虚拟机怎么用,vmware虚拟机的使用方法
  11. ROS(RouterOS)实现一线多拨+负载均衡(多图)
  12. php的解析别名,浅谈laravel aliases别名的原理
  13. 【Linux】——用户账号和组账号
  14. 图像修复 : ICCV 2021 基于条件纹理和结构并行生成的图像修复【翻译】
  15. conda命令下载包报错总结
  16. 前端js、功能性工具插件网站(持续更新,欢迎分享)
  17. POJ1502 信息传递(单源最短路径)
  18. Python 使用摄像头监测心率!这么强吗?
  19. 脚手架是什么你真知道吗?---kalrry
  20. 从三次工业革命到思维导图

热门文章

  1. CDA数据分析师level2(模拟题考点记录)
  2. 3w最简单led灯电路图_三种常用的LED驱动电源电路图详解
  3. 健身知识 / 动作图解(待全)
  4. 人工智能:智慧环保(上海AI智慧环保,绿色新时代)
  5. 所有用户登陆后都在桌面上显示计算机图标,如何在Win10桌面上显示计算机.控制面板.网络.用户的文件图标?...
  6. [腾讯校招] 微信红包
  7. 手机耳机插入电脑没有反应
  8. Windows7/10耳机插入前面板没反应的解决方案
  9. LANDESK桌面管理软件
  10. 如何过滤出已知当前目录下/llj中的所有一级目录?