美化背景(拼图小游戏)

package Puzzlegame.com.wxj.ui;import javax.swing.*;
import javax.swing.border.BevelBorder;
import java.util.Random;public class GameJframe extends JFrame {
//游戏主界面
//创建一个二维数组//目的:管理数据//加载图片的时候,会根据二维数组中的数据进行加载
int [][] data=new int[4][4];
public GameJframe(){//初始化界面initJFrame();//初始化菜单initJmenuBar();//初始化数据(打乱)
initData();//初始化图片(根据打乱之后的结果去加载图片)initImage();//让界面显示出来this.setVisible(true);
}//初始化数据(打乱)private void initData() {//1.定义一个数组int []tempArr={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};//2.打乱数组中的数据顺序//遍历数组,得到每一个元素,拿着每一个元素跟随机索引上的数据交换Random r=new Random();for (int i = 0; i < tempArr.length; i++) {//获取到随机索引int index=r.nextInt(tempArr.length);
//拿着遍历到的每一个数据,跟随机索引上的数据进行交换。int temp=tempArr[i];tempArr[i]=tempArr[index];tempArr[index]=temp;}//5.给二维数组添加数据//解法一//遍历一维数组tempArr得到每一个元素,把每一个元素依次添加到二维数组中for (int i = 0; i < tempArr.length; i++) {data[i/4][i%4]=tempArr[i];}}//初始化图片//添加图片的时候,就需要按照二维数组中的数据添加图片private void initImage() {//路径分为两种;//绝对路径:一定是从盘符开始//相对路径:相对当前项目而言//细节://先加载的图片在上方,后加载的图片在下方//外循环for (int i = 0; i < 4; i++) {//内循环for (int j = 0; j < 4; j++) {//获取当前要加载图片的序号int num=  data[i][j];//创建一个JLabel对象(管理容器)JLabel jLabel=new JLabel(new ImageIcon("F:\\javaEE\\src\\Puzzlegame\\com\\wxj\\ui\\image\\animal\\animal3\\"+num+".jpg"));//指定图片的位置jLabel.setBounds(105*j+83,105*i+134,105,105);//给图片添加边框jLabel.setBorder(new BevelBorder(1));//把管理容器添加到界面中this.getContentPane().add(jLabel);}}//添加背景图片JLabel background=new JLabel(new ImageIcon("F:\\javaEE\\src\\Puzzlegame\\com\\wxj\\ui\\image\\background.png"));background.setBounds(40,40,508,560);//把背景图片添加到界面当中this.getContentPane().add(background);}private void initJmenuBar() {//创建整个菜单对象JMenuBar jMenuBar=new JMenuBar();//创建菜单上的两个选项的对象(功能 关于我们)JMenu functionJMenu=new JMenu("功能");JMenu aboutJMenu=new JMenu("关于我们");
//创建选项下面的条目对象JMenuItem replayItem=new JMenuItem("重新游戏");JMenuItem reLoginItem=new JMenuItem("重新登录");JMenuItem closeItem=new JMenuItem("关闭游戏");JMenuItem accountItem=new JMenuItem("公众号");
//将每一个选项下面的条目添加到选项中functionJMenu.add(replayItem);functionJMenu.add(reLoginItem);functionJMenu.add(closeItem);aboutJMenu.add(accountItem);//将菜单里的两个选项添加到菜单当中jMenuBar.add(functionJMenu);jMenuBar.add(aboutJMenu);//给整个界面设置菜单this.setJMenuBar(jMenuBar);}//初始化界面private void initJFrame() {//设置界面的宽高this.setSize(603,680);//设置界面的标题this.setTitle("拼图单机版 V1.0");//设置界面置顶this.setAlwaysOnTop(true);//设置界面居中this.setLocationRelativeTo(null);//设置游戏的关闭模式this.setDefaultCloseOperation(3);//取消默认的居中放置,只有取消了才能按照xy轴的形式添加组件this.setLayout(null);}
}

运行之后为:

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

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

相关文章

大创项目推荐 目标检测-行人车辆检测流量计数

文章目录 前言1\. 目标检测概况1.1 什么是目标检测&#xff1f;1.2 发展阶段 2\. 行人检测2.1 行人检测简介2.2 行人检测技术难点2.3 行人检测实现效果2.4 关键代码-训练过程 最后 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 行人车辆目标检测计数系统 …

什么是Gitee代码托管服务?怎样用?(码云的使用)

国内代码托管平台 1.网站&#xff1a; Gitee - 基于 Git 的代码托管和研发协作平台

为什么3d合并的模型不能移动---模大狮模型网

当你在3D软件中合并模型后&#xff0c;如果无法移动合并后的模型&#xff0c;可能有以下几个可能的原因&#xff1a; 模型被锁定或冻结&#xff1a;在3D软件中&#xff0c;你可能会将模型锁定或冻结以防止意外的移动或编辑。请确保解锁或解冻模型&#xff0c;这样你就可以自由地…

外汇天眼:Alpha Group International为股票回购计划拨款高达2,000万英镑

Alpha Group International plc&#xff0c;一家为企业和机构提供金融解决方案的公司&#xff0c;宣布计划启动股票回购程序&#xff0c;以购买每股面值为0.2便士的普通股。 该公司已经从其现金储备中拨款高达2,000万英镑用于回购计划。购买的普通股将被保留在公司的资本中。 …

阿里巴巴1688商品详情API:从入门到精通的深入指南(五)

一、引言 阿里巴巴是中国最大的电商平台之一&#xff0c;而1688则是其批发采购平台。近年来&#xff0c;随着电子商务的快速发展&#xff0c;越来越多的企业开始需要从1688平台获取商品详情数据。为了满足这一需求&#xff0c;阿里巴巴提供了1688商品详情API。本文将详细介绍如…

Day02-课后练习1-参考答案(数据类型和运算符)

文章目录 巩固题1、按步骤编写代码&#xff0c;效果如图所示&#xff1a;2、按步骤编写代码&#xff0c;效果如图所示&#xff1a;3、强制类型转换练习&#xff0c;效果如图所示&#xff1a;4、按步骤编写代码&#xff0c;效果如图所示&#xff1a;5、计算时间6、华氏度转摄氏度…

C++STL之map、set的使用和模拟实现

绪论​&#xff1a; “我这个人走得很慢&#xff0c;但是我从不后退。——亚伯拉罕林肯”&#xff0c;本章是接上一章搜索二叉树中红黑树的后续文章&#xff0c;若没有看过强烈建议观看&#xff0c;否则后面模拟实现部分很看懂其代码原理。本章主要讲了map、set是如何使用的&am…

2024阿里云和腾讯云的第一战打响:搭建《幻兽帕鲁》私服游戏

为了搭建《幻兽帕鲁》游戏私服&#xff0c; 2024年阿里云 VS 腾讯云的第一场战争开始了…… 事情是这样的&#xff1a; 1月19日&#xff0c;最离谱新游 《幻兽帕鲁》突然爆火了&#xff0c;这是一款日本开发商展耗费4年开发的冒险类游戏&#xff0c;这款戏一推出就迅速俘获了…

MyBatis框架-ResultMap

文章目录 ResultMapsqlUser.java解决方案**方案一&#xff1a;为列名指定别名 , 别名和java实体类的属性名一致(自动映射)**UserMapper.xmlUserTest.java测试结果 **方案二&#xff1a;使用结果集映射->ResultMap 【推荐】&#xff08;手动映射&#xff09;**测试结果 Resul…

电脑如何调整照片尺寸大小和像素?一键修改图片大小

有时候&#xff0c;我们需要将图片调整为特定的大小&#xff0c;比如制作海报、头像或者上传到网站等&#xff0c;所以修改图片的尺寸和大小是在处理图片时常见的需求&#xff0c;那么电脑如何调整照片尺寸大小和像素呢&#xff1f;今天介绍一个最直接的图片尺寸大小怎么修改的…

深度学习快速入门--7天做项目

深度学习快速入门--7天做项目 0. 引言1. 本文内容2. 深度学习是什么3. 项目是一个很好的切入点4. 7天做项目4.1 第一天&#xff1a;数据整理4.2 第二天&#xff1a;数据处理4.3 第三天&#xff1a;简单神经网络设计4.4 第四天&#xff1a;分析效果与原因4.5 第五天&#xff1a;…

回归预测 | Matlab实现CPO-LSSVM【24年新算法】冠豪猪优化最小二乘支持向量机多变量回归预测

回归预测 | Matlab实现CPO-LSSVM【24年新算法】冠豪猪优化最小二乘支持向量机多变量回归预测 目录 回归预测 | Matlab实现CPO-LSSVM【24年新算法】冠豪猪优化最小二乘支持向量机多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现CPO-LSSVM【24年…