前言需求


本篇文章开始根据尚学堂马士兵老师的教学视频:坦克大战,进行展开学习

本篇文章目的

  • 产生窗口
  • 添加不允许移动窗口大小的处理
  • 添加关闭窗口的事件处理

一、创建窗口

创建TankClient类,并使用继承Frame类的方式,使用相关方法

public class TankClient extends Frame {//定义窗口方法public void lauchFrame(){//设置窗口出现的位置this.setLocation(400,300);//设置窗口的宽度高度this.setSize(800,600);setVisible(true);}}

接下来运行main 方法

public static void main(String[] args) {TankClient client = new TankClient();//打开窗口client.lauchFrame();
}

二、添加不允许移动窗口大小的处理

运行后发现窗口可以移动调整大小,这样缩放窗口大小会影响很大

所以我们要添加不允许移动窗口的事件处理

//定义窗口方法
public void lauchFrame(){//设置窗口出现的位置this.setLocation(400,300);//设置窗口的宽度高度this.setSize(800,600);setVisible(true);//不允许随意调整窗口大小的方式this.setResizable(false);
}

public void setResizable(boolean resizable)

设置此窗体是否可由用户调整大小。

参数为boolean类型:

resizeable值为true时,表示生成的窗体可以自由改变大小;

resizeable值为false时,表示生成的窗体大小是由程序员决定的,用户不可以自由改变该窗体的大小

三、添加关闭窗口事件处理

//定义窗口方法
public void lauchFrame(){//设置窗口出现的位置this.setLocation(400,300);//设置窗口的宽度高度this.setSize(800,600);setVisible(true);//采用匿名类的方式关闭窗口this.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {//正常处理表示正常退出System.exit(0);}});//不允许随意调整窗口大小的方式this.setResizable(false);
}

这个是表示在窗口添加一个Windows事件消息,目的是我们关闭窗口的时候可以正常的退出,其实这段语句等价于

frame.setDefaultCloseOptration(JFrame.EXIT_ON_CLOSE);

在语句中new WindowAdapter表示新的创建WindowAdapter的对象

中间是对一个函数也就是windows窗口关闭函数进行重写

接下来,我们就可以运行发现无法修改窗口大小,也可以正常关闭了

参考资料


尚学堂:坦克大战(马士兵老师)

我所知道坦克大战(单机版)之Client窗口的创建、关闭、禁止调整大小相关推荐

  1. 初学java 第一个java程序 坦克大战单机版

    网上坦克大战的游戏并不少,包括单机版,网络版.然而,作为一名程序员,学一门语言的最好方式莫过于写程序.在写的过程中,你会遇到很多的问题,这个时候你再去找原因,查帮助文档,谷歌百度等等,你的能力才会进步 ...

  2. Java 坦克大战单机版 源代码

    尚学堂版本的修改版 玩法: 方向键:控制走动 Ctrl:控制发弹 A:超级子弹 X:八方向发弹 =:添加敌方坦克 F2:重新开始 其他功能: 在头上实时显示血条 吃到血块时能补血 自动积分 敌方坦克过 ...

  3. JAVA项目学习之坦克大战单机版

    本科阶段尽管学过JAVA课程,却始终感觉在云里雾里.这段时间认真学习了马士兵老师JAVA基础教程,跟着写了TankWar的小项目,感觉对JAVA中类的使用有了许多新的认识,思路比原来也清晰多了,在此总 ...

  4. Unity学习第一周-物理引擎-项目——坦克大战单机版

    项目需求及策划

  5. 一、坦克大战单机版策划

  6. 【Unity3D-Mirror多人坦克大战】生命盾牌物品的创建、物品动画的创建(九)

    目录 31.物品类基础配置 32.生命盾牌物品创建 33.创建动画 测试 31.物品类基础配置 在ObjectSpawner.cs添加代码 ​ using System.Collections; us ...

  7. 我所知道坦克大战(单机版)之使用键盘控制改变坦克位置

    我们发现前两篇文章所造成的坦克,他只能固定一个方向进行移动 那么对于我们来说,一般要么使用鼠标,要么使用键盘控制 那么我们怎么实现这样的方式呢? 实现键盘监听 在java 中我们使用键盘监听的话有两种 ...

  8. 坦克大战java_清华毕业大佬用一个坦克大战项目讲完了23种设计模式

    先给大家讲述一下坦克大战是怎么进行运行的. 坦克大战第一节: new 出一个窗口: 设定标题栏内容: TankFrame从Frame继承+显示: 认识paint方法,重写: 坦克大战第二节 学习gra ...

  9. 运用Python+Pygame开发坦克大战游戏_版本V1.01

    这里写目录标题 一.项目整体说明 二.pygame下载方式 三.项目文件 1.坦克大战_框架_1.py 2.坦克大战_开始游戏_窗口设置_2.py 3.坦克大战_事件检测_3.py 4.坦克大战_基本 ...

最新文章

  1. 迁移学习——Domain Adaptation
  2. Lifecycle Activity和Fragment生命周期感知组件 LifecycleObserver MD
  3. Set the roller speed
  4. python中数字应该用什么表示_Python
  5. 如何隐藏你写的ABAP代码
  6. mysql的各种语句_MySql常用操作SQL语句汇总
  7. ExtJS4 API文档阅读(四)——Data
  8. feign整合sential,Feign中使用Sentinel熔断器防止服务雪崩
  9. matlab出现红色括号,想让大家看下标红地方为什么说有括号问题
  10. 全系统动态污点分析-概要
  11. 虚拟机下ubuntu10.04挂载NFS
  12. C++多态(二)——纯虚函数、抽象类
  13. informix利用dbaccess倒出数据
  14. CCF NOI1087 第K名
  15. 图形界面上的任意形状图形按钮
  16. 计算机技术在图形图像处理中的应用,计算机图形图像处理技术综述
  17. Python 内置函数详解,进阶必备
  18. LDPC编码原理概述
  19. 安卓 - jsoup批量下载图片(以每日必应图片示例)
  20. 楼市十大卖楼花招曝光

热门文章

  1. Docker 自建 Bitwarden 密码服务器 centOS + 宝塔面板
  2. 通过git的方式使用SVN(附原SVN命令)
  3. 3000字干货!如何做好一个BI项目的规划和需求定义?
  4. 海康摄像头二次开发动态配置.dll与.so文件
  5. Python语言程序设计(嵩天老师版)第二周笔记
  6. HTML中的一些细节处理
  7. Fast Rcnn 和Faster Rcnn
  8. 产品经理和项目经理的区别,读这一篇就够了!(史上最全总结)
  9. 手把手教你做一个jsp servlet mysql实现的学生签到考勤请假管理系统附带视频开发教程和完整源码
  10. 逻辑门电路的延时分析