开发五子棋小游戏1.0——了解Java中的继承、绘图与鼠标监听器的使用
目录1. 初识项目开发语言技术技能2.继承3.五子棋的初步开发1. 初识项目开发语言游戏矩阵游戏五子棋、围棋、象棋、连连看、俄罗斯方块、扫雷界面开发创建窗体设置属性、创建组件对象添加到窗体上监听器创建监听器类实现监听器接口重写监听器方法创建对象与组件绑定数组[] 初始化、下标、长度判断与循环if-else、for、while类与对象属性、方法、创建对象、调用属性以及方法鼠标、键盘控制游戏自己独立完成一些任务植物大战僵尸、雷霆战机技术技能画图Graphics 图形、GPU-显卡-5060绘制直线、矩形、圆形、设置颜色、设置字体、绘制图片窗体对象在可视化之后也可以获取一个 Graphics 对象用于在窗体上绘制图形。Graphics g jf.getGraphics();鼠标监听器接口MouseListener功能监听窗体当鼠标在窗体上按下、松开、点击等操作后会被识别用来获取坐标。public class GoBangListener implements MouseListener { Override public void mouseClicked(MouseEvent e) { }// 鼠标单击按下释放且没有拖动 Override public void mousePressed(MouseEvent e) { }// 鼠标按下任意按键按下瞬间 Override public void mouseReleased(MouseEvent e) { }// 鼠标释放松开按键 Override public void mouseEntered(MouseEvent e) { }//鼠标光标进入组件区域 Override public void mouseExited(MouseEvent e) { }//鼠标光标离开组件区域 }2.继承在编写五子棋的代码时我们会遇到以下问题绘制好的图形在窗体上一旦窗体改变尺寸/最大化/最小化/移出屏幕外绘制的图形就会消失而出现这个问题的原因是窗体以上情况发生时会调用GPU重新绘制窗体自己本身基于此我们可以通过继承的学习来解决这个问题~继承是面向对象三大特性之一封装、继承、多态作用复用已有类的代码建立类与类之间的父子关系类与类之间的关系子类 继承 父类public class 子类名 extends 父类名{ }1.子类中可以继承父类所有的属性以及方法2.子类可以改造父类的方法 通过重写方法的形式3.五子棋的初步开发package xzn0721; import javax.swing.*; import java.awt.*; import java.awt.image.ImageObserver; import java.text.AttributedCharacterIterator; public class GoBangUI { public void showUI(){ myFrame jf new myFrame(); jf.setSize(600,700); jf.setLocationRelativeTo(null);//居中显示 jf.setDefaultCloseOperation(3); jf.setVisible(true); //将鼠标监听器绑定到窗体上实现点击鼠标就能画圆 GoBangListener gbl new GoBangListener(jf); jf.addMouseListener(gbl); } static void main() { GoBangUI gbUI new GoBangUI(); gbUI.showUI(); } }package xzn0721; import javax.swing.*; import java.awt.*; public class myFrame extends JFrame { Override public void paint(Graphics g) { super.paint(g); g.setColor(Color.orange); g.fillRect(0,0,500,500); //划线 g.setColor(Color.black); for(int i1;i16;i) { g.drawLine(50, 20 i * 30, 470, 20 i * 30);//(x1,y1)是线段的起点坐标(x2,y2)是线段的终点坐标 g.drawLine(20 i * 30, 50, 20 i * 30, 470); } //画棋盘上的点 g.setColor(Color.black); g.fillOval(137,137,6,6);//(x,y)是圆形外接正方形的左上角顶点width、height分别是正方形的宽与高 g.fillOval(377,377,6,6); g.fillOval(377,137,6,6); g.fillOval(137,377,6,6); g.fillOval(257,257,6,6); } }​package xzn0721; import javax.swing.*; import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; public class GoBangListener implements MouseListener { JFrame jf; int clickCount;//记录点击次数初始值为0 //构造方法将窗体地址传给鼠标监听器的成员变量 public GoBangListener(JFrame jf){ this.jf jf; } Override public void mouseClicked(MouseEvent e) { clickCount; int xe.getX();//获取鼠标点击的坐标 int ye.getY(); //使用窗体的作图工具简称画笔 Graphics g1 jf.getGraphics(); if (clickCount % 2 0) { g1.setColor(Color.white); } else { g1.setColor(Color.black); } g1.fillOval(x-15,y-15,30,30); } Override public void mousePressed(MouseEvent e) { } Override public void mouseReleased(MouseEvent e) { } Override public void mouseEntered(MouseEvent e) { } Override public void mouseExited(MouseEvent e) { } }运行结果提示不能把监听器 “绑定到圆上”。 Swing 原生没有图形碰撞监听圆只是画出来的像素不是组件鼠标监听器只能绑定组件。该程序的缺陷1、在窗体上随意落子未将棋子限定在交点坐标2、可重复落子下篇博客我来改进这些问题~

相关新闻

模型蒸馏技术:大模型落地的关键优化方法

模型蒸馏技术:大模型落地的关键优化方法

1. 从行业争议看模型蒸馏的价值去年科技圈那场关于模型知识迁移的争论,让我想起早期云计算发展时的类似场景。当时某国际巨头指控竞争对手"不当使用技术",而实际情况远比表面看到的复杂。这场争议背后,恰恰反映了模型蒸馏技术在当前…

2026/7/26 7:48:43阅读更多 →
三年后的自己是什么状态;

三年后的自己是什么状态;

三年后的你,不是一个突然出现的陌生人,而是今天的你每天重复选择的累积结果。很多人想象未来: 像是在猜一个答案。但更准确: 未来是一个由系统不断生成的状态。第一层:三年后的自己,由什么决定?…

2026/7/26 7:46:42阅读更多 →
每一个“如果”,都是一个没有验证的未来。

每一个“如果”,都是一个没有验证的未来。

“如果”本身不是问题,问题是我们把未经验证的可能性,当成了已经发生的现实。人的大脑有一种能力: 提前模拟未来。 这是保护机制。 它帮助我们: 预测风险;提前准备;避免危险。但是,当这种能力失…

2026/7/26 7:46:42阅读更多 →
大模型技术栈选型与工程实践:从架构设计到生产部署

大模型技术栈选型与工程实践:从架构设计到生产部署

从2024年7月开始,大模型领域正式进入了一个全新的竞争阶段。这个阶段不再只是比拼模型参数规模或单点能力,而是转向了更全面的生态竞争。各大厂商和开源社区都在加速迭代,试图在性能、成本、应用场景和开发者体验等多个维度建立优势。对于技术…

2026/7/26 9:07:04阅读更多 →
5分钟搞定视频硬字幕提取:免费工具让视频文字重获自由

5分钟搞定视频硬字幕提取:免费工具让视频文字重获自由

5分钟搞定视频硬字幕提取:免费工具让视频文字重获自由 【免费下载链接】video-subtitle-extractor 视频硬字幕提取,生成srt文件。无需申请第三方API,本地实现文本识别。基于深度学习的视频字幕提取框架,包含字幕区域检测、字幕内容…

2026/7/26 9:07:04阅读更多 →
扩散模型在强化学习中的应用:Diffusion Policy技术解析

扩散模型在强化学习中的应用:Diffusion Policy技术解析

1. 项目概述:扩散模型在策略学习中的崛起最近两年,扩散模型(Diffusion Model)在生成式AI领域掀起了一场革命。从Stable Diffusion的图像生成到Audio Diffusion的语音合成,这种基于物理热力学原理的模型架构正在重塑我们…

2026/7/26 9:07:04阅读更多 →
深入解析CC254x RF Core:FIFO、DMA与RAM寄存器实战指南

深入解析CC254x RF Core:FIFO、DMA与RAM寄存器实战指南

1. 项目概述与RF Core核心价值在嵌入式无线通信开发,尤其是基于TI CC254x这类经典蓝牙低功耗(BLE)SoC的项目中,如何高效、稳定地处理射频数据流,是决定产品性能与功耗的关键。很多开发者初期会依赖协议栈提供的API&…

2026/7/26 9:07:04阅读更多 →
Windows 11 SDK下载与安装全指南

Windows 11 SDK下载与安装全指南

1. Windows 11 SDK概述与核心价值 作为微软最新的操作系统开发套件,Windows 11 SDK(Software Development Kit)是构建现代Windows应用程序的基石工具包。不同于普通运行时环境,这个SDK包含了完整的API头文件、库文件、调试工具和…

2026/7/26 9:07:04阅读更多 →
ENet-Transformer混合模型在多变量时间序列预测中的应用

ENet-Transformer混合模型在多变量时间序列预测中的应用

1. 项目概述:ENet-Transformer多变量时间序列预测 在时间序列预测领域,传统方法往往难以捕捉复杂数据中的长期依赖和非线性关系。本项目提出了一种创新的两阶段建模方法,将弹性网络(ENet)的特征选择能力与Transformer的序列建模优势相结合。这…

2026/7/26 9:05:04阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/26 0:01:28阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/26 0:01:28阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/26 0:01:28阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/26 0:01:28阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/26 0:01:28阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/26 0:01:28阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/25 23:03:25阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/25 19:03:04阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/25 19:03:04阅读更多 →