【Java】韩顺平Java学习笔记 第16章 坦克大战

B站韩顺平java学习笔记(十九)-- 坦克大战【3】 章节 坦克大战【3】 阅读详情

第16章 坦克大战

Java 坐标体系

  • 坐标一个值就是一个像素
  • 像素是密度单位 而不是长度单位

Java 绘图

  • 建立的画图的类需要继承 JPanel 类 (画板,面板)

  • 重写 JPanel 的 paint 方法引入参数Graphics(画笔)

  • Graphics提供绘图方法

    • super.paint(调用父类方法完成初始化)
    • darwOral(画椭圆和圆)
    • drawLine(直线)
    • drawRect(矩形)
    • setColor(设置画笔颜色)
    • setFont(设置画笔字体,传入的是 Font 对象)
    • fillRect(画填充矩形,先要设置画笔颜色)
    • fill3DRectd
    • fillOval
    • drawString(写字,x和y坐标对应的是左下角)
    • drawImage(画图片)
      • 获取图片资源 Image image = Toolkit.getDefaultToolkit().getImage(Panel.class.getResourse());
      • 图片要放在out文件夹内的根目录下
  • paint被调用的时机

    • 窗口最小化再最大化
    • 窗口大小发生改变
    • repaint方法被调用
  • 与文件名相同的类继承 JFrame 类(画框)

  • 构造器内容:

    • 定义面板
    • 初始化面板
    • 把面板放入窗口(画框)
    • 设置窗口大小
    • 可视化
  • 参考代码

    import javax.swing.*;
    import java.awt.*;
    
    public class HomeWork1 extends JFrame {
        //定义一个面板
        private Mypanel mp = null;
        public static void main(String[] args) {
            new HomeWork1();
        }
        //构造器
        public HomeWork1(){
            //初始化面板
            mp = new Mypanel();
            //面板放入窗口
            this.add(mp);
            //设置窗口大小
            this.setSize(500,500);
            //可视化
            this.setVisible(true);
            //关闭画框时关闭程序
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
    }
    
    class Mypanel extends JPanel{
    
        @Override
        public void paint(Graphics g) {
            super.paint(g);
            g.drawOval(10,10,300,300);
        }
    }
    
    

Java 事件处理机制

  • 委派处理模型:事件发生时,事件源将事件对象传递给“事件的监听者”,监听者再进行处理
  • 事件源:产生时间的对象,如按钮、窗口
  • 事件对象:存储事件的很多信息,如按下的按键等
  • 面板(画板)接入键盘监听器接口 KeyListener
    • 接入的类可以成为事件监听者
    • 一个类可以接入多个监听器接口
  • 按下 Alt + Enter 重写方法
    • keyTyped(字符输出时触发)
    • ketPressed(按下按键触发)
    • keyReleased(松开按键触发)
  • 传入 KeyEvent 对象
  • KetEvent 对象方法
    • getKeyCode (返回按下哪个键)

2021年JavaSE学习路线 (博主去全力学前端辽咕咕咕) 跟着老韩学JAVA 冲呐! 阅读详情

相关推荐

从零到一:手把手教你用Python+LangChain搭建企业级RAG知识库(附避坑指南)

本文为开发者提供了一份详尽的实战指南,手把手教你使用Python和LangChain框架从零构建企业级RAG知识库。内容涵盖环境搭建、文档处理、向量化检索、提示工程及生产部署等核心环节,并重点分享了文档分割、检索优化等关键避坑经验,旨在帮助读者打造稳定、高效且易于维护的智能知识中枢。

weixin_29058331的博客 398

韩顺平 java 坦克大战_HTML5坦克大战(韩顺平版本)

1 //定义敌人和我们自己的坦克的颜色2 var enemyColor = new Array("#0BB","#0FF");3 var heroColor = new Array("#dc0","#ff5");4 //封装一个公用的坦克父类5 functionTank(x,y,direct){6 this.x =x;7 this.y =y;8 this.speed = 3...

weixin_33193177的博客 472

从零构建:如何在VSCode中为HBuilderX迁移的UniApp项目搭建TypeScript支持环境

本文详细指导如何将HBuilderX中的UniApp项目迁移至VSCode并搭建TypeScript支持环境。通过pnpm包管理器初始化项目、配置tsconfig.json和vite.config.ts文件,实现工程化迁移与TypeScript深度集成,提升开发效率和代码质量。

book8的博客 1050

非零基础自学Java (老师:韩顺平) 第16章 坦克大战 16.1 坦克大战游戏演示 && 16.2 Java 绘图坐标体系

非零基础自学Java (老师:韩顺平) 第16章 坦克大战 16.1 坦克大战游戏演示 && 16.2 Java 绘图坐标体系

代码改变世界 878

VS2022+Qt6保姆级环境配置指南:从插件安装到项目互通全流程

本文提供VS2022与Qt6深度整合的全流程指南,涵盖环境配置、插件安装、项目互通等关键步骤。详细解析编译器版本匹配、跨IDE协作方案及效能优化技巧,帮助开发者高效搭建C++界面设计开发环境,实现软件项目无缝互通。

zero1的博客 732

MT4/MT5数据源接入全攻略:从买服务、自研API到低成本DDE,哪种方案适合你?

本文全面解析MT4/MT5数据源接入的三种主流方案:商业服务、自研API和低成本DDE,详细对比其技术参数、成本结构和适用场景。帮助技术团队根据业务需求选择最优方案,确保外汇交易系统的数据流稳定性和实时性,提升交易体验和业务连续性。

weixin_42568801的博客 172

非零基础自学Java (老师:韩顺平) 第16章 坦克大战 16.4 坦克大战游戏

非零基础自学Java (老师:韩顺平) 第16章 坦克大战 16.4 坦克大战游戏

代码改变世界 765

MS1030超声波流量计电路实战:如何用15ps精度优化水表设计(附配置代码)

本文深入探讨了如何利用MS1030超声波流量计芯片实现15ps高精度测量,以优化水表设计。文章从系统误差分配出发,详细解析了硬件电路设计要点、SPI通信配置及核心优化技巧,如利用可编程偏置电压和8回波累加功能来提升抗干扰能力与测量稳定性,并附有实用的配置代码示例。

svm4gardener的博客 333

Java笔记(韩顺平Java基础15-20章)

案例(传统方式解决): 结果: 程序出现类型转换的错误 泛型的好处 泛型介绍 案例: 泛型的语法 泛型的声明 泛型的实例化 泛型使用的注意事项和细节 代码实现:main方法: MyDate类 Employee类 自定义泛型 自定义泛型类(难度) 演示案例: 自定义泛型方法 演示案例: 泛型的继承和通配符 泛型的继承和通配符说明 JUnit 为什么需要JUint 基本介绍游戏演示 为什么写这个项目 写项目前的提醒 坐标体系-介绍 坐标体系-像素 介绍-快速入门(java绘图技术原理)√

jinghaize的博客 638

【PINN高级教程】 第1讲:函数空间与逼近理论

结论:在解决偏微分方程(PDE)时,解往往属于某个 Sobolev 空间 HsHs,其正则性受限于 PDE 的系数与边界条件;而 PINN 在训练过程中实际上是在逼近 Barron 空间中的函数。由于 Barron 空间允许高频信息的压缩,PINN 可以在参数规模较小的情况下捕捉到 PDE 解所需的细节,但其正则性保证仍然比 Sobolev 更弱。因此,在设计 PINN 时,需要通过正则化或网络结构(如残差连接、归一化层)来“逼近”Sobolev 正则性。

u012133341的博客 237

《Linux GPU 驱动核心机制:面向图形与 AI 计算的 DRM 内存管理与任务调度》 目录

本文以缓冲区对象(BO)生命周期为主线,系统解析 Linux DRM 子系统中 GPU 驱动的核心机制。涵盖 GEM 与 TTM 内存管理、dma-buf/dma-fence 共享同步、GPU 调度与地址空间管理,结合 amdgpu、Xe 等驱动代码,深入剖析其设计动机与实现逻辑。旨在填补中文领域对 GPU 内核机制系统性讲解的空白,为图形与 AI 计算场景下的内存泄漏、同步死锁等疑难问题提供可追溯的分析路径。

图形/计算GPU的驱动与虚拟化技术分享园地 3719

循序渐进学Java笔记(Chapter16_坦克大战[1])

循序渐进学Java笔记(Chapter16_坦克大战[1]) 写于2024/04/26

ZZHow Blog 789

SQL Server数据库备份与恢复

在 SQL Server 中,数据库备份与恢复是保障数据安全的核心操作。

zjw541806的博客 1876

韩顺平 2021零基础学Java 学习笔记(3)(自用)

目录第 14 章 集合 第 14 章 集合 14.1 集合的理解和好处 14.2 集合的框架体系 Java 的集合类很多,主要分为两大类,如图 : 14.3 Collection 接口和常用方法 14.3.1 Collection 接口实现类的特点 package com.hspedu.collection_; import java.util.ArrayList; import java.util.List; public class CollectionMethod { @Supp

weixin_43973189的博客 1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

非零基础自学Java (老师:韩顺平) 第16章 坦克大战 16.3 Java 事件处理机制

非零基础自学Java (老师:韩顺平) 第16章 坦克大战 16.3 Java 事件处理机制

代码改变世界 576

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

韩顺平循序渐进学java百度云_韩顺平.循序渐进学java从入门到精通视频教程及笔记与源码下载(94讲)...

韩顺平.循序渐进学.java.从入门到精通视频教程目录:第0讲-开山篇.avi.avi第1讲-内容介绍.项目演示.原理剖析.avi第2讲-变量.数据类型.avi第3讲-运算符.流程控制.avi第4讲-.流程控制.avi第5讲-类.对象.avi第6讲-成员属性.成员方法.avi第7讲-成员方法.构造方法.avi第8讲-this.类变量.avi .avi第9讲-类方法.封装.avi第10讲-访问修饰符...

weixin_35695434的博客 4321

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

java从入门到精通 韩顺平_韩顺平Java从入门到精通视频教程(94集)

资源名称:韩顺平Java从入门到精通视频教程(94集)资源目录:【一品资源网】0ba098f4c9bf51c59e18b9064e282cb0【一品资源网】11cbad4314ae46f021b61d6136c4e44f【一品资源网】19aa0b4dd936a7f95e25df567415c138【一品资源网】1b1de006092e4e7545a8558b8c5334e4【一品资源网】1dac9...

weixin_32139249的博客 1666

韩顺平坦克大战5--防止敌人坦克重叠的优化实现

韩顺平java中P647-P649,给出了防止敌人坦克碰撞的八种情况,代码太多了不想敲。”的方法需要在一个case中调用4次,总共调用16次。因此遍历enemyTanks的循环外面应该还有个两次的while循环,每次传入一个this坦克的点。现在就剩下最后一个问题:一个this坦克需要判断两个点,在一个enemyTanks的循环中,只判断了一个点,怎么办?形参:(点的x坐标,点的y坐标,矩形左上角x坐标,矩形左上角y坐标,矩形的宽度wide,矩形的高度high)4. 自然的,我们发现,在3的条件下。

qq_44624753的博客 639

韩顺平python教程视频_韩顺平Java从入门到精通视频教程

韩顺平 java 从入门到精通第 0 讲-开山篇韩顺平 java 从入门到精通第 1 讲-内容介绍.项目演示.原理剖析韩顺平 java 从入门到精通第 3 讲-运算符.流程控制韩顺平 java 从入门到精通第 4 讲-.流程控制韩顺平 java 从入门到精通第 5 讲-类.对象韩顺平 java 从入门到精通第 6 讲-成员属性.成员方法韩顺平 java 从入门到精通第 7 讲-成员方法.构造方法韩...

weixin_39922749的博客 891

韩顺平.循序渐进学.java.从入门到精通

目录 第00讲-开山篇 第01讲-内容介绍.项目演示.原理剖析 第02讲-变量.数据类型 第03讲-运算符.流程控制 第04讲-.流程控制 第05讲-类.对象 第06讲-成员属性.成员方法 第07讲-成员方法.构造方法 第08讲-this.类变量 第09讲-类方法.封装 第10讲-访问修饰符.重载.覆盖 第11讲-约瑟夫问题 第12讲-多态 第13讲-抽象类.接口 第14讲-final.作业评讲 ...

COCO56的博客 1752

html百度首页制作视频,韩顺平 轻松搞定网页设计 html+css+js

韩顺平老师的教程影响着一代又一代的学子们,他的视频教程确实做的很经典,不论是java、php还是网页设计,都有出彩的地方。这里,小编给大家分享韩顺平老师的轻松搞定网页设计教程,绝对完整,全部存于百度网盘中,欢迎下载!html css js的关系html是网页的结构,css是网页的表达形式,JS是脚本语言;形象一点说就是,html相当于人里面的器官,组成了人体;而Css就是你穿着的衣服,即使html...

weixin_31147827的博客 512

循序渐进学Java笔记合集

本文分享了韩顺平Java课程的学习笔记整理情况,包含从Chapter01到Chapter23的完整章节内容,所有代码和笔记已上传至GitHub仓库(https://github.com/zzhow0/Notes_on_the_Course_of_Han_Shunping_Gradually_Learning_Java)。笔记从2024年1月开始持续更新,目前已整理完成面向对象编程、集合、多线程、IO流、网络编程等核心内容,并包含房屋出租系统、坦克大战等实战项目。 写于2024/02/05

ZZHow Blog 838

韩顺平_JAVA_视频教程_下载(打开迅雷,直接复制链接地址即可下载)

ed2k://|file|韩顺平.循序渐进学.java.从入门到精通.第0讲-开山篇.avi|37021064|f4fb2fb3db938a642146ccc8f0935fed|h=ao2k3ep7pnvdweoq4myxg7rywv32d6r3|/ ed2k://|file|韩顺平.循序渐进学.java.从入门到精通.第1讲-内容介绍.项目演示.原理剖析.avi|73482868|1b6b73

DevOps海洋的渔夫@专栏 2万+

韩顺平 j2ee 系列视频课程(java servlet oracle jsp struts hibernate spring ajax xml linux)

资源 下面是用户共享的文件列表,您可以点击这些文件名进行下载 最新更新文件韩顺平.循序渐进学.java.从入门到精通.第0讲-开山篇.avi 详情 35.3MB 最新更新文件韩顺平.循序渐进学.java.从入门到精通.第1讲-内容介绍.项目演示.原理剖析.avi 详情 70.1MB 最新更新文件韩顺平.循序渐进学.java.从入门到精通.第2讲-变量.数据类型.avi 详情 46

487

韩顺平0基础学java——第26天

p523-547

m0_50959806的博客 1009

Java绘制圆形

java实现圆形绘制---具体绘图函数请查阅API

weixin_46080096的博客 5866
上一篇: 【Java】韩顺平Java学习笔记 第15章 泛型
下一篇: 【Java】韩顺平Java学习笔记 第17章 多线程基础
COTAS
博客等级 码龄7年 369粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值