美化背景(拼图小游戏)

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.rhkb.cn/news/247765.html

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

相关文章

BabylonJS 6.0文档 Deep Dive 摄像机(六):遮罩层和多相机纹理

1. 使用遮罩层来处理多个摄影机和多网格物体 LayerMask是分配给每个网格&#xff08;Mesh&#xff09;和摄像机&#xff08;Camera&#xff09;的一个数。它用于位&#xff08;bit&#xff09;级别用来指示灯光和摄影机是否应照射或显示网格物体。默认值为0x0FFFFFFF&#xff…

【java】常见的面试问题

目录 一、异常 1、 throw 和 throws 的区别&#xff1f; 2、 final、finally、finalize 有什么区别&#xff1f; 3、try-catch-finally 中哪个部分可以省略&#xff1f; 4、try-catch-finally 中&#xff0c;如果 catch 中 return 了&#xff0c;finally 还会执行吗&#…

SpringMVC 自动配置

SpringMVC 自动配置 一、WebMvcAutoConfiguration&#xff08;SpringMVC自动配置&#xff09;二、DisPatcherServletAutoConfiguration.class&#xff08;中央调度器自动配置&#xff09;三、WebMvcConfigurationSupport&#xff08;SpringMVC组件配置类&#xff09;四、Servle…

CSS 星空按钮

<template><button class="btn" type="button"><strong>星空按钮</strong><div id="container-stars"><div id="stars"></div></div><div id="glow"><div class=…

安全小记-ngnix负载均衡

目录 一.配置ngnix环境二.nginx负载均衡 一.配置ngnix环境 本次实验使用的是centos7,首先默认yum源已经配置好&#xff0c;没有配置好的自行访问阿里云镜像站 https://developer.aliyun.com/mirror/ 接着进行安装工作 1.首先创建Nginx的目录并进入&#xff1a; mkdir /soft &…

IS-IS:03 ISIS链路状态数据库

一个 OSPF 链路状态数据库是若干条 LSA 的集合。与此相似&#xff0c;一个 IS-IS 链路状态数据库是若干条 LSP 的集合。与 OSPF 链路状态数据库不同&#xff0c; IS-IS 链路状态数据库有 level-1 和 level-2 之分。 在IS-IS 协议中&#xff0c;每一条 LSP 都有一个剩余生存时间…

基于UDP的套接字通信(附通信代码)

基于UDP的套接字通信 udp是一个面向无连接的&#xff0c;不安全的&#xff0c;报式传输层协议&#xff0c;udp的通信过程默认也是阻塞的。 不需要建立连接 UDP通信过程中&#xff0c;每次都需要指定数据接收端的IP和端口 UDP不对收到的数据进行排序&#xff0c;在UDP报文的…

Adobe ColdFusion 反序列化漏洞复现(CVE-2023-38203)

0x01 产品简介 Adobe ColdFusion是美国奥多比(Adobe)公司的一套快速应用程序开发平台。该平台包括集成开发环境和脚本语言。 0x02 漏洞概述 Adobe ColdFusion存在代码问题漏洞,该漏洞源于受到不受信任数据反序列化漏洞的影响,攻击者通过漏洞可以代码执行,可导致服务器失…

第17节-高质量简历写作求职通关-投递反馈

&#xff08;点击即可收听&#xff09; 投递跟进和感谢信 如果对一家公司特别心仪&#xff0c;但是投递简历后一直得不到回复怎么办&#xff1f; 面试之后觉得自己没有表现好怎么办&#xff1f; 面试完几天了&#xff0c;依然没有得到回应怎么办&#xff1f; 这个时候你需要写一…

RabbitMQ多种工作场景详解

目录 1、hello world体验 2、Work queues 工作序列 3、Publish/Subscribe订阅与发布 4、Routing 基于内容的路由 5、Topics 基于话题的路由 6、Headers 头部路由机制 7、Publisher Confirms 发送者消息确认 ​ 1、发布单条消息 ​ 2、发送批量消息 ​ 3、异步确认消息…

【JVM】运行时数据区域,内存如何分配和对象在内存中的组成

目录 一.运行时数据区域 1.线程独享 2.线程共享 二.内存如何分配 1.指针碰撞法 2.空闲列表法 3.TLAB 三.对象在内存中的组成 ​编辑1.对象头 2.实例数据 3.对齐填充 一.运行时数据区域 1.线程独享 &#xff08;1&#xff09;栈 虚拟机栈&#xff1a;每个 Java 方法在…

GPT-SoVITS 测试

开箱直用版&#xff08;使用 AutoDL&#xff09; step1 打开地址 https://www.codewithgpu.com/i/RVC-Boss/GPT-SoVITS/GPT-SoVITS-Official 选择 AutoDL创建实例&#xff0c;选择 3080ti 机器 step2 创建好实例之后&#xff0c;进入命令行&#xff0c;输入命令 echo {}>…

Vue学习之使用开发工具创建项目、gitcode管理项目

Vue学习之使用开发工具创建项目、gitcode管理项目 翻阅与学习了vue的开发工具&#xff0c;通过对比最终采用HBuilderX作为开发工具&#xff0c;以下章节对HBuilder安装与基础使用介绍 1. HBuilder 下载 从HbuildX官网&#xff08;http://www.dcloud.io/hbuilderx.html&#…

Mac安装配置maven

Mac安装配置maven 官网下载地址&#xff1a;https://maven.apache.org/download.cgi 下载好以后解压配置 maven 环境变量 打开终端&#xff0c;输入命令打开配置文件./bash_profile open ~/.bash_profile输入i进入编辑模式,进行maven配置; MAVEN_HOME为maven的本地路径 ex…

opencv——将2张图片合并

效果演示&#xff1a; 带有绿幕的图片的狮子提取出来&#xff0c;放到另一种风景图片里&#xff01; 1. 首先我们要先口出绿色绿幕&#xff0c;比如&#xff1a; 这里将绿色绿色绿幕先转为HSV&#xff0c;通过修改颜色的明暗度&#xff0c;抠出狮子的轮廓。 代码 &#xff1a…

CSS3的学习笔记

CSS3的学习笔记 什么是css: CSS是层叠样式表&#xff08;Cascading Style Sheets&#xff09;的缩写&#xff0c;是一种用来描述网页样式和布局的标记语言。它可以控制网页中的文字大小、颜色、间距、背景、边框、布局等方面&#xff0c;使网页更加美观和易于阅读。通过CSS&a…

HarmonyOS NEXT 星河版项目案例

参考代码&#xff1a;HeimaHealthy: 鸿蒙项目案例练习 (gitee.com) 1.欢迎页面 Entry Component struct WelcomePage {State message: string Hello Worldbuild() {Column({space: 10}) {Row() {// 1.中央slogonImage($r(app.media.home_slogan)).width(260)}.layoutWeight(…

MG7050HAN 基于声表的差分多输出 晶体振荡器 (HCSL)

基于MG7050 HAN的声表差分多输出晶体振荡器(HCSL)&#xff0c;采用两路或四路差分HCSL&#xff08;高速电流驱动逻辑&#xff09;输出&#xff0c;可以减少外部扇出缓冲区&#xff0c;特别适用于需要超低抖动、高频率范围内稳定工作的应用场合。其输出特性曲线超低抖动&#xf…

x-cmd pkg | sqlite3 - 轻量级的嵌入式关系型数据库

目录 简介首次用户 技术特点竞品和相关产品sqlite 与 x-cmd进一步阅读 简介 sqlite3 是一个轻量级的文件数据库&#xff0c;体积非常小&#xff0c;提供简单优雅而功能强大的 sql 化的数据查询。 通常情况下&#xff0c;sqlite 指的是 SQLite 2.x 版本&#xff0c;而 sqlite3 …

【AI视野·今日NLP 自然语言处理论文速览 第七十六期】Fri, 12 Jan 2024

AI视野今日CS.NLP 自然语言处理论文速览 Fri, 12 Jan 2024 Totally 60 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Axis Tour: Word Tour Determines the Order of Axes in ICA-transformed Embeddings Authors Hiroaki Yamagi…