Java实现俄罗斯方块-初始化游戏界面的JPanel

目录

技术实现:

2.初始化游戏界面; 

2.1 什么是游戏界面

2.2 JPanel面板

 2.3 流布局管理器【FlowLayout】

2.4 网络布局管理器 【GridLayout】

2.5 边界布局管理器 


技术实现:


1.初始化游戏窗口;

2.初始化游戏界面;

3.初始化游戏的说明面板;

4.随机生成下落方块;

5.绘制方块;

6.清除方块;

7.清楚某一行方块,上方方块掉落;

8.刷新清除某一行方块后的界面;

9.键盘控制下落方块的移动方向,形状;

10.判断方块能否下落;

11.实现方块下落速度的变化;

12.游戏的暂停;

2.初始化游戏界面; 

2.1 什么是游戏界面

        通俗的说就是你进入一款游戏,在屏幕上看到的都属于游戏界面;

 

2.2 JPanel面板

        JPanel也是一个容器类(非顶层容器),主要用于界面布局;

        一个界面只能有一个JFrame,但可以有多个JPanel,在JPanel的基础上还可以增加其他组件;

另外,多个JPanel相互独立,互不影响;

 

 温馨提示:

         在早期的 Java 版本中,getContentPane() 方法是必要的步骤,因为 Swing 组件不能直接添加到 JFrame 上。但随着 Java SE 5.0 的发布,可以直接在 JFrame 上使用 add() 方法添加组件,使得 getContentPane() 方法的使用变得可选,但仍然推荐使用该方法以确保最佳实践

        在使用 JFrame 创建窗口时,一般不要直接将组件添加到 JFrame 上,应该用 getContentPane() 方法获取内容面板对象后,再对其进行适当的操作;

  //将按钮,文本域等组件添加到面板上jpanel.add(jb);jpanel.add(jl);//使用getContentPane()获取内容面板;jframe.getContentPane().add(jpanel);

 2.3 流布局管理器【FlowLayout】

        这是最基本的布局方式;

class csdn {public void test() {//创建窗体JFrame frame=new JFrame("这是窗体的名字");//建个按钮JButton button=new JButton("登录");//建个Lable标签JLabel lable=new JLabel("这是一个JFrame窗口");//设置窗体可见frame.setVisible(true);frame.setBounds(0,0,600,900);frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//frame.pack();//不固定窗口大小frame.setResizable(false);//固定窗口大小//来个面板JPanel panel=new JPanel();	panel.add(lable);		//面板里添加Lablepanel.add(button);		//面板里添加按钮//将窗体转换为容器再添加上面板frame.getContentPane().add(panel);frame.setLayout(new FlowLayout(1));//调用流布局,设为0时,每一行的组件将被指定按照左对齐排列//1是中间布局,2是右对齐排列}public static void main(String[] args) {// TODO Auto-generated method stubcsdn c= new csdn();c.test();}
}

         

 

2.4 网络布局管理器 【GridLayout】

        1.该布局中每个组件大小相同;

        2.组件按照从左到右,从上到下的的顺序排列;

        3.改变窗体大小,组件大小也会随之改变;

class Demo2{public static void main(String [] args){JFrame jframe=new JFrame("神秘无敌宇宙力量");jframe.setVisible(true);jframe.setBounds(0,0,600,900);jframe.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//jframe.setResizable(false);//jframe.pack();//创建按钮JButton jbutton1=new JButton("青龙");JButton jbutton2=new JButton("白虎");JButton jbutton3=new JButton("朱雀");JButton jbutton4=new JButton("玄武");//直接添加到界面上jframe.add(jbutton1);jframe.add(jbutton2);jframe.add(jbutton3);jframe.add(jbutton4);//分布式管理器jframe.setLayout(new GridLayout(3,2,10,10));}
}

 

2.5 边界布局管理器 

         1.不指定布局管理器时,Swing使用的就是边界布局管理器;

          2.窗体被划分为东,西,南,北,中五个区域;

class Demo4{public static void main(String[] args) {JFrame jframe=new JFrame("欢迎入坑");jframe.setBounds(0,0,600,900);jframe.setVisible(true);jframe.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//创建按钮JButton button1=new JButton("AA");JButton button2=new JButton("BB");JButton button3=new JButton("CC");JButton button4=new JButton("DD");JButton button5=new JButton("EE");//边界布局管理jframe.add(button1,BorderLayout.EAST);jframe.add(button2,BorderLayout.CENTER);jframe.add(button3,BorderLayout.WEST);jframe.add(button4,BorderLayout.NORTH);jframe.add(button5,BorderLayout.SOUTH);}
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL -- 事务

MySQL事务是数据库操作的一个重要概念,事务是指一组操作要么全部完成,要么全部不完成,是数据库的一个逻辑工作单元。事务的主要目的是确保数据库的一致性和可靠性。 事务是一组SQL语句的执行,要么全部成功,要么全部失…

企业该怎么进行流程管理?

众所周知,流程管理在企业中是一种有效的方法,可以帮助组织优化运营、提高效率并降低成本。 下面是一些步骤,可以帮助大家在企业中实施流程管理: 确定目标:首先,明确企业的目标和愿景。这将帮助您确定需要…

最佳 PDF 合并工具评测

PDF是我们官方文档常用的格式。因此,如今处理 PDF 文件是一项非常重要的技能,例如使用 doc 创建 pdf、将 pdf 文件合并为单个 pdf、将 pdf 拆分为多个 pdf 文件、为 pdf 文件添加密码以进行安全分发等等。获得上述技能的关键部分是找到一个简单但功能强大…

如何高效使用大型语言模型 LLMs 初学者版本 简单易上手

第一条也是最重要的一条规则是 永远不要要求LLM提供你无法自己验证的信息, 或让它完成你无法验证其正确性的任务。 唯一例外的情况是那些无关紧要的任务, 例如,让大型语言模型提供公寓装修灵感之类的是可以的 。 首先请看两个范例 不佳示范&#xff1a…

Qwen-VL图文多模态大模型LoRA微调指南

大模型相关目录 大模型,包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步,扬帆起航。 大模型应用向开发路径:AI代理工作流大模型应用开发实用开源项目汇总大模…

介绍并改造一个作用于Anki笔记浏览器的插件

在Anki的笔记浏览器窗口中,作为主体部分的表格在对获取到的笔记进行排序时,最多只能有一个排序字段,在设定笔记的排序字段后,没法将表格中的笔记按其他字段进行排序。要满足这个需求,可以使用Advanced Browser插件&…

怎么用AI绘画完成设计创作?

AI绘画工具为设计师提供了强大的功能和便利性,用AI绘画进行艺术创作能够使设计师能够更快地迭代和优化设计方案,提高设计效率。那么怎么用AI绘画完成设计创作? 要使用AI绘画完成设计创作,首先需要选择一个合适的工具。目前市场上有很多优秀的…

Springboot微服务整合缓存的时候报循环依赖的错误 两种解决方案

错误再现 Error starting ApplicationContext. To display the conditions report re-run your application with debug enabled. 2024-06-17 16:52:41.008 ERROR 20544 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLI…

【Oracle生产运维】数据库服务器高负载排查处理

说明 在Oracle数据库运维工作中,经常会遇到Oracle数据库服务器平均负载(load average)突然异常升高,如果放任不管,严重的情况下会出现数据库宕机、服务器重启等重大故障。因此,当发现数据库服务器平均负载…

Humanize,一个很有人情味的 Python 库

目录 01初识 Humanize 为什么选择 Humanize? 安装 Humanize 02时间与日期的处理 时间差的展示 日期的展示 03数字的处理 数字的单位转换 数字的精确度控制 数字的千位分隔符 04文件大小的处理 文件…

一文学会消息中间件的基础知识

什么是消息队列 队列数据结构 我们都学习过数据结构与算法相关的内容,消息队列从数据结构来看,就是一个由链表或是数组构成的一个先进先出的数据容器。由链表实现还是数组实现都没关系,它只要满足数据项是先进先出的特点,那么就可以认为它是一个队列结构。队列是只允许在…

智能制造uwb高精度定位系统模块,飞睿智能3厘米定位测距芯片,无人机高速传输

在科技日新月异的今天,定位技术已经渗透到我们生活的方方面面。从手机导航到自动驾驶,再到无人机定位,都离不开精准的定位系统。然而,随着应用场景的不断拓展,传统的定位技术如GPS、WiFi定位等,因其定位精度…

Java:113-Spring Data JPA详解

Spring Data JPA详解 Spring Data Jpa 是应用于Dao层的⼀个框架,简化数据库开发的,作用和Mybatis框架⼀样,但是在使用方式和底层机制是有所不同的,最明显的⼀个特点,Spring Data Jpa 开发Dao的时候,很多场景…

天锐绿盾数据防泄密软件有哪些功能

天锐绿盾数据防泄密软件的功能丰富而全面,旨在从源头上保障企业数据的安全。以下是对其主要功能的归纳和介绍: www.drhchina.com 一、文件加密模块 透明加密:在不影响用户工作流程的前提下,对需要保护的文件进行自动加密处理。文…

别再这么起号了!TikTok小白起号误区,你中招了吗?

看过不少Tiktok新手的起号失败案例,总结下来就是以下这几个问题,今天结合一些个人起号心得给大家分享怎么成功在TK起号,希望对大家有所帮助。 手机/网络环境 首先我们要确保手机环境和网络环境没有问题,如果被TK判断出是非海外用户…

数据治理服务解决方案(35页WORD)

方案介绍: 本数据治理服务解决方案旨在为企业提供一站式的数据治理服务,包括数据规划、数据采集、数据存储、数据处理、数据质量保障、数据安全及合规等方面。通过构建完善的数据治理体系,确保企业数据的准确性、完整性和一致性,…

【Python】PySide6使用入门和注意事项

文章目录 前言关于PySide和PyQtQt Designerpyside6在vscode中ui文件转换兼容性问题主程序结构蓝牙协议初探(应用层) 前言 最近在开发一个带界面的软件,需要使用蓝牙,然后找到一个开源仓库使用的是Qt里面的Qbluetooth模块&#xff…

List实现类——ArrayList、LinkedList及迭代器(并发修改异常错误)源码分析

1、ArrayList本质及源码分析 两种情况:加一个和很多个 底层原理:elementData是底层数组的名字 再次满了的话,在扩容1.5倍 如果利用addAll一次添加多个元素,按实际元素数进行扩容 源码分析: 1、空参构造,…

STORM论文阅读笔记

这是篇NIPS2023的 world model 论文文章提出,WM的误差会在训练过程中积累从而影响policy的训练,向WM中加噪声可以改善这一点。其他的流程和IRIS差不多,差别在以下几点: image encoder,IRIS用的VQVAE, 本文用的是VAE&am…

看穿人性!现货白银交易的一些博弈心得

很多投资者认为现货白银交易最应该讲求的是交易技巧,但交易的技巧和套路是“死”的,行情走势却是“活”的,投资者需要在实践中不断地累积经验和总结心得,才能更加灵活地面对行情走势的变化,逐步达至盈利的理想彼岸。 无…