[Java]Swing版坦克大战小游戏项目开发(1)——new出一个窗口


highlight: xcode

theme: vuepress

前言

本系列文章带领 Java 初学者学习使用 Java 语言结合 Swing 技术以及设计模式开发一款经典小游戏——坦克大战。通过这个小游戏,你可以学会很多实用的设计模式思想,并且提高你的编码水平。

熟悉Frame

Frame 类是 Java Swing 技术的核心类,它表示一个窗口。然后开发者可以在这个窗口里面画各种图形,添加各种组件。

首先,我们使用 Frame 类来创建一个窗口。我们既然要开发坦克大战游戏,那么不妨把这个游戏窗口命名为 TankFrame

TankFrame 声明如下,它继承了 Frame 类。然后我们重写构造方法:

```java public class TankFrame extends Frame {

public TankFrame() throws HeadlessException {
    setVisible(true);
    setSize(800, 600);
    setResizable(false);
    setTitle("War of Tank");
    setLocationRelativeTo(null);
    addWindowListener(new WindowAdapter() {
        @Override
        public void windowClosing(WindowEvent e) {
            System.exit(0);
        }
    });
}

} ```

简单介绍一下构造方法的代码。setVisible(true); 表示让窗口显示出来,因为默认窗口是隐藏的。setSize 方法表示可以设置窗口的宽高。setResizable 表示是否可以重新拖拽窗口的宽高。这里设置为了 false,表示不可以重新设置宽高。setTitle 表示设置窗口的标题。setLocationRelativeTo 表示设置窗口的相对位置,相对于 null 表示窗口在屏幕正中间。addWindowListener 表示添加窗口监听器,传入 WindowAdapter 的构造器,重写 windowClosing 方法,这样在点击窗口的叉号时可以退出进程也就是 JVM。

在主方法里面运行一下看看:

```java public class FrameDemo {

public static void main(String[] args) throws InterruptedException {
    TankFrame frame = new TankFrame();
}

} ```

image.png

一个简单的 Swing 窗口就启动成功了。在下一节,你会了解到窗口的 paintrepaint 方法。通过这两个方法,你可以在窗口里面绘制图像。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/789189.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

高昂定价,业绩增速踩下“急刹车”,圣贝拉IPO故事不好讲

近日,SAINT BELLA(下称“圣贝拉”)向港交所提交上市申请,瑞银集团、中信证券为其联席保荐人。 据招股书介绍,圣贝拉是一家家庭护理品牌集团,在产后护理及修复、家庭儿童护理、女性健康功能性食品方面开发产…

46、lvs集群- 博客

1、lvs集群: lvs:linux virtual server----章文嵩发起的开源项目,阿里。linux的内核层面实现负载均衡的软件。 主要作用:将多个后端服务器组成一个高可用,高性能的服务器集群,通过负载均衡的算法将客户端的…

AI究竟是在帮助开发者还是取代他们?来看大佬的观点你就明白了

AI(人工智能)在现代社会中扮演着越来越重要的角色,其在软件开发领域的应用也日益广泛。关于AI是在帮助开发者还是取代他们,V 哥个人认为,一半一半吧,为什么这么说,先不用噴,我们需要…

智驭未来:人工智能与目标检测的深度交融

在科技日新月异的今天,人工智能(AI)如同一股不可阻挡的浪潮,正以前所未有的速度重塑着我们的世界。在众多AI应用领域中,目标检测以其独特的魅力和广泛的应用前景,成为了连接现实与智能世界的桥梁。本文旨在…

WPF引入多个控件库使用

目的 设计开发时有的控件库的一部分符合我们想要的UI样式,另一部分来自另一个控件库,想把两种库的样式做一个整合在同一个控件资源上。单纯通过引用的方式会导致原有样式被覆盖。这里通过设置全局样式的方式来实现。 1.安装控件库nuget包:H…

Python 传递参数和返回值

Python是一种功能强大的编程语言,它以其简洁和易用性而广受欢迎。在Python编程中,参数传递和返回值是函数调用中两个非常重要的概念。理解这些概念对于编写高效且可维护的代码至关重要。 一、参数传递 在Python中,函数参数可以通过以下几种…

css文字自适应宽度动态出现省略号...

前言 在列表排行榜中通常会出现的一个需求:从左到右依次是名次、头像、昵称、徽标、分数。徽标可能会有多个或者没有徽标,徽标长度是动态的,昵称如果过长要随着有无徽标进行动态截断出现省略号。如下图布局所示(花里胡哨的底色是…

Java版Flink使用指南——分流导出

大纲 新建工程编码Pom.xml自定义无界流分流 测试工程代码 在之前的案例中,我们一直使用的是单个Sink来做数据的输出。实际上,Flink是支持多个输出流的。本文我们就来讲解如何在Flink数据输出时做分流处理。 我们将基于《Java版Flink使用指南——自定义无…

人工智能(AI)在医疗行业的应用前景

人工智能(AI)在医疗行业的应用前景十分广阔,有望彻底改变医疗行业的各个方面。需要注意的是,AI在医疗领域的应用也存在一些潜在的风险和挑战,例如算法偏见、数据隐私和安全、伦理问题等。在开发和应用AI医疗产品时&…

苹果手机短信功能停用怎么恢复?一分钟快速解决!

在使用苹果手机的过程中,可能会遇到短信功能突然停用的情况,这可能导致你无法发送或接收短信,影响日常通讯。这个问题可能由多种原因引起,如网络设置、软件冲突或运营商问题。 短信功能停用怎么恢复?不必担心&#xf…

【Superset】dashboard 自定义URL

URL设置 在发布仪表盘(dashboard)后,可以通过修改看板属性中的SLUG等,生成url 举例: http://localhost:8090/superset/dashboard/test/ 参数设置 以下 URL 参数可用于修改仪表板的呈现方式:此处参考了官…

django农产品销售系统-计算机毕业设计源码65418

基于HTML5的农产品销售系统的设计与实现 摘 要 本文针对农产品销售系统存在的传统销售方式效率低下、信息交流困难等问题,基于HTML5进行了系统的设计与实现。首先,通过对当前农产品销售系统的现状和问题进行分析,提出了基于HTML5的系统设计方…

蓝牙人员定位精准吗?是否会对人体有伤害?

不知道大家现在使用的蓝牙人员定位系统都是什么样的呢?其实就出行而言,使用GPS定位也就是足够了的,而且目前的定位相对也比较精准了,效果还是很不错的。但是如果说是室内定位,很显然常规的定位系统是无法满足使用需求的…

C语言 结构体和共用体——结构体类型与结构体变量

目录 问题的提出 数组的解决方法 我们希望的内存分配图 如何声明一个结构体类型? 如何定义一个结构体变量? 用typedef给数据类型定义一个别名 如何定义一个结构体变量? 结构体变量的初始化 问题的提出 数组的解决方法 我们希望的内存…

PostgREST API 安装及基础使用

PostgREST是一个独立的Web服务器,它将PostgreSQL数据库转换为RESTful API。它提供基于基础数据库的结构自定义的API。 PostgREST安装 首先访问Releases PostgREST/postgrest (github.com),根据安装平台选择下载的源码。比如我现在的设备是Mac但是我的…

man手册的安装和使用

man手册 - HQ 文章目录 man手册 - HQ[toc]man手册的使用Linux man中文手册安装man中文手册通过安装包安装通过apt安装 配置man中文手册README使用说明配置步骤 man手册的使用 首先man分为八个目录,每个目录用一个数字表示 1.可执行程序2.系统调用3.库函数4.特殊文…

身份证二要素API,实名认证领域的创新之选

身份证二要素API,是一种实名认证领域的创新解决方案。通过输入姓名和身份证号,该API可以通过官方权威渠道进行核查,实时校验二要素的一致性,并返回生日、性别、籍贯等详细信息。这篇博文将详细介绍身份证二要素API的使用方法&…

c语言数据结构--链表

实验内容: 编程实现链表下教材第二章定义的线性表的基本操作,最好用菜单形式对应各个操作,使其编程一个完整的小软件。 实验步骤: 1.按照实验要求编写代码,构造链表,初始化链表 2.再插入元素1 2 3 3.分别…

书生大模型实战营(暑假场)-入门岛-第一关

书生大模型实战营暑假场重磅开启!,这场学习路线看起来很好玩呀,闯关学习既能学到知识又有免费算力可得,太良心啦。感兴趣的小伙伴赶快一起报名学习吧!!! 关卡任务 好的,我们废话不多…

如何在忘记密码的情况下重置Realme手机?

欢迎阅读我们关于如何在有或没有密码的情况下重置Realme手机的综合指南。无论您是忘记了密码,还是只是需要将设备恢复到出厂设置,我们都会为您提供所需的专业提示和技术专长。 发现分步说明、专家提示和行之有效的方法,轻松重新控制您的 Rea…