当前位置: 首页 > news >正文

【Java项目介绍和界面搭建】拼图小游戏——添加图片

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

目录

拼图小游戏

练习

创建主界面1

代码

创建主界面2

菜单制作

在游戏界面中添加菜单

代码

添加图片

游戏主界面添加组件

代码


拼图小游戏

练习

创建主界面1

  • 到idea中创建一个宽603像素,高680像素的游戏主界面
  • 到idea中创建一个宽488像素,高430像素的登录界面
  • 到idea中创建一个宽488像素,高500像素的注册界面

代码

测试类:test ,在这个测试类中,我们直接把三个Java用户图形化界面生成了,但是这样三个功能界面全部都写在同一个main函数里面,对于我们以后的代码修改很不方便。

所以我们这里进行修改下,分别写成单独的类中。

package ui;import javax.swing.*;public class test {public static void main(String[] args) {//JFrame是JavaBean类描述界面的//属性 (宽 高)  行为//1.创建一个游戏的主界面JFrame gameJFrame = new JFrame();gameJFrame.setSize(603,680);//单位是像素gameJFrame.setVisible(true);//2.创建一个登陆界面JFrame loginJFrame = new JFrame();loginJFrame.setSize(488,430);loginJFrame.setVisible(true);//3.创建一个注册界面JFrame registerJFrame = new JFrame();registerJFrame.setSize(488,500);registerJFrame.setVisible(true);}
}

注册界面:RegisterJFrame

package ui;import javax.swing.*;public class RegisterJFrame extends JFrame {//跟相关注册界面的代码,都写里面public RegisterJFrame(){this.setSize(488,500);this.setVisible(true);}}

登录界面:loginJFrame

package ui;import javax.swing.*;public class loginJFrame extends JFrame {//loginJFrame 表示登录界面//以后所以跟登录相关的代码,都写里面public loginJFrame(){this.setSize(488,430);this.setVisible(true);}}

游戏界面:GameJFrame

package ui;import javax.swing.*;public class GameJFrame extends JFrame {//JFrame 界面,窗体//子类呢?也表示界面,窗体//规定:GameJFrame这个界面表示的就是游戏的主界面//以后跟游戏相关的所有逻辑都写在这个类中public GameJFrame(){this.setSize(603,680);//单位是像素this.setVisible(true);}}

程序的启动入口:App

我们可以把test这个类删掉了,我们可以直接俄利用App这个程序的启动入口,我们需要启动哪个界面,我们直接创建谁就可以了。

import ui.GameJFrame;
import ui.RegisterJFrame;
import ui.loginJFrame;public class App {public static void main(String[] args) {//表示程序的启动入口//如果我们想要开启一个界面,就创建谁的对象就好了new RegisterJFrame();new GameJFrame();new loginJFrame();}
}

创建主界面2

简单初始化界面

    public RegisterJFrame(){this.setSize(488,500);//设置界面的标题this.setTitle("拼图 注册");//设置界面置顶this.setAlwaysOnTop(true);//设置界面居中this.setLocationRelativeTo(null);//设置关闭模式this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//让界面显示出来this.setVisible(true);
菜单制作

在游戏界面中添加菜单

代码

游戏界面:GameJFrame

package ui;import javax.swing.*;public class GameJFrame extends JFrame {//JFrame 界面,窗体//子类呢?也表示界面,窗体//规定:GameJFrame这个界面表示的就是游戏的主界面//以后跟游戏相关的所有逻辑都写在这个类中public GameJFrame(){//初始化界面initJFrame();//初始化菜单initJMenuBar();//让界面显示出来,最后写this.setVisible(true);}private void initJMenuBar() {//初始化菜单//创建整个的菜单对象JMenuBar jMenuBar = new JMenuBar();//创建菜单上面的两个选项的对象  (功能  关于我们)JMenu fuctionJMenu = new JMenu("功能");JMenu aboutJMenu = new JMenu("关于我们");//创建选项下面的条目对象JMenuItem replayItem = new JMenuItem("重新游戏");JMenuItem reloginItem = new JMenuItem("重新登录");JMenuItem closeItem = new JMenuItem("关闭游戏");JMenuItem accountItem = new JMenuItem("公众号");//将每一个选项下的条目添加到对应的选项中fuctionJMenu.add(replayItem);fuctionJMenu.add(reloginItem);fuctionJMenu.add(closeItem);aboutJMenu.add(accountItem);//将菜单里面的两个选项添加到菜单中jMenuBar.add(fuctionJMenu);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(WindowConstants.EXIT_ON_CLOSE);}}

测试类:App

import ui.GameJFrame;
import ui.RegisterJFrame;
import ui.loginJFrame;public class App {public static void main(String[] args) {//表示程序的启动入口//如果我们想要开启一个界面,就创建谁的对象就好了new GameJFrame();
//        new RegisterJFrame();
//        new loginJFrame();}
}

添加图片

  • 默认添加图片显示在正中央

多写一个初始化图片

package ui;import javax.swing.*;public class GameJFrame extends JFrame {//JFrame 界面,窗体//子类呢?也表示界面,窗体//规定:GameJFrame这个界面表示的就是游戏的主界面//以后跟游戏相关的所有逻辑都写在这个类中public GameJFrame(){//初始化界面initJFrame();//初始化菜单initJMenuBar();//初始化图片initimage();//让界面显示出来,最后写mthis.setVisible(true);}//---------------------------------- ---------------------//初始化图片private void initimage() {//1.创建一个图片imageicon的对象ImageIcon icon = new ImageIcon("E:\\tool\\IDEA-java\\java代码\\routing\\image\\animal\\animal3\\3.jpg");//2.创建一个Jlabel的对象(管理容器)JLabel JLabel = new JLabel(icon);//3.把管理容器添加到界面中this.add(JLabel);}private void initJMenuBar() {//初始化菜单//创建整个的菜单对象JMenuBar jMenuBar = new JMenuBar();//创建菜单上面的两个选项的对象  (功能  关于我们)JMenu fuctionJMenu = new JMenu("功能");JMenu aboutJMenu = new JMenu("关于我们");//创建选项下面的条目对象JMenuItem replayItem = new JMenuItem("重新游戏");JMenuItem reloginItem = new JMenuItem("重新登录");JMenuItem closeItem = new JMenuItem("关闭游戏");JMenuItem accountItem = new JMenuItem("公众号");//将每一个选项下的条目添加到对应的选项中fuctionJMenu.add(replayItem);fuctionJMenu.add(reloginItem);fuctionJMenu.add(closeItem);aboutJMenu.add(accountItem);//将菜单里面的两个选项添加到菜单中jMenuBar.add(fuctionJMenu);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(WindowConstants.EXIT_ON_CLOSE);}}

app运行:

import ui.GameJFrame;
import ui.RegisterJFrame;
import ui.loginJFrame;public class App {public static void main(String[] args) {//表示程序的启动入口//如果我们想要开启一个界面,就创建谁的对象就好了new GameJFrame();
//        new RegisterJFrame();
//        new loginJFrame();}
}

游戏主界面添加组件

代码
    //初始化图片private void initimage() {//外循环  --把内循环重复执行了4次int number = 1;for (int i = 0; i < 4; i++) {//内循环  --表示在一行添加4张图片for (int j = 0; j < 4; j++) {//1.创建一个Jlabel的对象(管理容器)JLabel JLabel = new JLabel(new ImageIcon("E:\\\\tool\\\\IDEA-java\\\\java代码\\\\routing\\\\image\\\\animal\\\\animal3\\\\" + number +".jpg"));//2.指定图片的位置JLabel.setBounds(105 * i,105 * j,105,105);//3.把管理容器添加到界面中this.getContentPane().add(JLabel);number++;}}

App 运行

import ui.GameJFrame;
import ui.RegisterJFrame;
import ui.loginJFrame;public class App {public static void main(String[] args) {//表示程序的启动入口//如果我们想要开启一个界面,就创建谁的对象就好了new GameJFrame();
//        new RegisterJFrame();
//        new loginJFrame();}
}

相关文章:

【Java项目介绍和界面搭建】拼图小游戏——添加图片

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏 …...

「MySQL」基本操作类型

&#x1f387;个人主页&#xff1a;Ice_Sugar_7 &#x1f387;所属专栏&#xff1a;数据库 &#x1f387;欢迎点赞收藏加关注哦&#xff01; 数据库的操作 创建、显示数据库 使用 create 创建一个数据库 create database goods;然后可以用 show databases 来查看已经创建的数…...

Android 14 权限

问题Android 14 按照视频播放类的应用 无法获取到权限。 原因是从 Android 13 开始&#xff0c;如果你的应用程序 targetSdk 指定到了 33 或以上&#xff0c;那么 READ_EXTRERNAL_STORGE 权限就完全失去了作用&#xff0c;申请它将不会产生任何效果。 与此相对应的&#xff0c…...

Springboot整合SSE实现实时消息推送

SSE详细介绍传送门&#xff1a;SSE实时消息推送 简单描述一下SSE推送在实际项目中应用的常见场景 1&#xff0c;项目页面中有消息通知板块&#xff0c;当信息有变化时&#xff0c;只有手动刷新页面&#xff0c;才会看到最新的数据&#xff0c;这里可以采用SSE技术实时推送最新…...

在pytorch中利用GPU训练神经网络时代码的执行顺序并提高训练效率

在pytorch中利用GPU训练神经网络时代码的执行顺序并提高训练效率 在 PyTorch 中&#xff0c;大多数操作在 GPU 上默认是异步执行的&#xff0c;但这并不意味着它们是并行执行的。要理解代码是同步还是异步执行&#xff0c;以及是串行还是并行执行&#xff0c;我们需要考虑几个…...

vue3学习

距离vue2学习已经一年度了&#xff0c;现在开始vue3的学习。 一、webpack &#xff08;1&#xff09;创建列表隔行变色项目及webpack使用&#xff1a; 新建项目空白目录&#xff0c;并运行npm init -y命令&#xff0c;初始化包管理配置文件package.json&#xff1b; 新建sr…...

毫秒生成的时间戳如何转化成东八区具体时间

假设现在有一个时间是1709101071419L 后端代码实现 Java代码&#xff08;东八区时间&#xff09; 在Java代码中&#xff0c;我们将时区从UTC调整为东八区&#xff08;UTC8&#xff09;&#xff1a; import java.time.Instant; import java.time.ZoneId; import java.time.Z…...

02. Nginx入门-Nginx安装

Nginx安装 yum安装 编辑yum环境 cat > /etc/yum.repos.d/nginx.repo << EOF [nginx-stable] namenginx stable repo baseurlhttp://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck1 enabled1 gpgkeyhttps://nginx.org/keys/nginx_signing.key module_…...

leetcode73. 矩阵置零

链接见&#xff1a;https://leetcode.cn/problems/set-matrix-zeroes/description/ 题目描述 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 AC代码 class Solution { public:void setZeroes(vec…...

【中间件】RabbitMQ入门

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;中间件 ⛺️稳中求进&#xff0c;晒太阳 MQ的优劣&#xff1a; 优势 应用解耦&#xff1a;提升了系统容错性和可维护性异步提速&#xff1a;提升用户体验和系统吞吐量消峰填谷&#xff1…...

rtt的io设备框架面向对象学习-电阻屏LCD设备

目录 1.8080通信的电阻屏LCD设备1.1 构造流程1.2 使用2.i2c和spi通信的电阻屏LCD 电阻屏LCD通信接口有支持I2c、SPI和8080通信接口的。 1.8080通信的电阻屏LCD设备 lcd这块不像其他设备类&#xff0c;rtt没有实现的设备驱动框架层&#xff0c;那么是在驱动层直接实现的。 以…...

商城免费搭建之java商城 java电子商务Spring Cloud+Spring Boot+mybatis+MQ+VR全景

1. 涉及平台 平台管理、商家端&#xff08;PC端、手机端&#xff09;、买家平台&#xff08;H5/公众号、小程序、APP端&#xff08;IOS/Android&#xff09;、微服务平台&#xff08;业务服务&#xff09; 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis 3. 前端框架…...

蓝桥杯刷题--python-16

562. 壁画 - AcWing题库 Tint(input()) j1 while(j<T): N int(input()) ainput() s [0]*(N1) # 求前戳和 for i in range(1, N 1): s[i] int(a[i-1]) s[i - 1] # 枚举 # 区间 max_ float(-inf) k (N 2 - 1) // 2 for i in …...

闰年计算中的计算机Bug

不知道你有没有看过凯瑟琳泽塔琼斯主演的《偷天陷阱》&#xff0c;里面主题思想是用银行结算系统的千年虫bug&#xff0c;精心设计&#xff0c;盗取银行几十亿的精彩动作片。所谓2000 年千禧年的千年虫&#xff0c;其实就是计算机计算闰年的bug。 这个闰年计算的历史源远流长&…...

python水表识别图像识别深度学习 CNN

python水表识别&#xff0c;图像识别深度学习 CNN&#xff0c;Opencv,Keras 重点&#xff1a;项目和文档是本人近期原创所作&#xff01;程序可以将水表图片里面的数据进行深度学习&#xff0c;提取相关信息训练&#xff0c;lw1.3万字重复15%&#xff0c;可以直接上交那种&…...

Java对接快递100实时快递单号查询API接口

目录 1.引入依赖 2.定义配置信息 3.模块结构 4.Controller 5.Service实现类 6.返回数据dto以及dto中的数据dto 7.测试运行 今天也是接到了这个任务&#xff0c;官网有小demo&#xff0c;可以下载下来参考test中代码 官方文档地址&#xff1a; 实时快递查询接口技术文档…...

Redis常见的15个【坑】,避坑指南

一、常见命令 1.1 过期时间意外丢失 原因&#xff1a; SET命令如果不设置过期时间&#xff0c;那么Redis会自动【擦除】这个key的过期时间 1.2 DEL命令阻塞redis key是String类型时&#xff0c;DEL时间复杂度是O(1)key是List/Hash/Set/ZSet类型&#xff0c;DEL时间复杂度是…...

04. Nginx入门-Nginx WEB模块

测试环境 此处使用的yum安装的Nginx路径。 此处域名均在本地配置hosts。 主配置文件 路径&#xff1a;/etc/nginx/nginx.conf user nginx; worker_processes auto;error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid;events {worker_connection…...

Python在信息安全领域中具有重要的作用

Python在信息安全领域中具有重要的作用。下面是几个方面的说明&#xff1a; 网络安全&#xff1a;Python提供了一系列用于网络安全的库和工具&#xff0c;例如Scapy、Nmap等。这些工具可以应用于漏洞扫描、网络流量分析、数据包嗅探等操作&#xff0c;帮助检测和防御网络攻击。…...

Linux 定时备份文件到另一台服务器

1. 需求 用户要求将 Tomcat 的日志文件定时备份到另一台服务器。同事给我提供了一个写好的 java 框架&#xff0c;但实在不想给用户再维护另一个服务了&#xff0c;所以另寻他法。 2. 问题 使用 scp 等跨服务器传输命令时需要手动输入用户名的密码才可进行文件传输&#xff…...

适配多层级组织管理,科学运用 360 度反馈打造公平高效绩效文化

360度绩效反馈评估是一种从上级、下属、同事、客户等多个维度收集反馈的综合绩效评估方法&#xff0c;通过多源数据消除单一评价者的主观偏差&#xff0c;帮助企业获得更全面、客观的员工能力画像。相比传统的上级单向评价&#xff0c;360度反馈能将评估准确度提升40%以上&…...

Q学习入门:用DQN训练乒乓AI的原理与实操

1. 项目概述&#xff1a;从乒乓游戏切入&#xff0c;理解Q学习如何让AI学会“思考下一步”你有没有试过盯着一个简单的乒乓球游戏界面发呆&#xff1f;球正朝右下角飞来&#xff0c;挡板在屏幕左侧&#xff0c;此时你的手指悬在键盘上方——是按上、按下&#xff0c;还是不动&a…...

TensorFlow 2迁移学习实战:图像分类快速上手指南

我不能基于您提供的输入内容生成符合要求的博文。原因如下&#xff1a;输入内容严重缺失实质性项目信息&#xff1a;仅包含一篇已发表文章的元数据&#xff08;标题、发布日期、作者名、平台名称、一句模糊口号“学习竞争对手”&#xff09;&#xff0c;完全没有提供任何关于 T…...

解锁洛可可美学密码:用Midjourney V6实现蓬巴杜夫人级繁复纹样、柔光质感与粉金配色的5步精准控制法

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;洛可可美学的数字转译本质与Midjourney V6语义解码机制 洛可可美学以繁复卷曲的曲线、轻盈的不对称构图、粉金柔色调与自然母题&#xff08;如贝壳、藤蔓、云朵&#xff09;为标志&#xff0c;其核心并…...

好用的山西GEO服务商

你可能已经感受到&#xff1a;当客户在AI大模型里问“山西哪家GEO优化公司靠谱&#xff1f;”、“中小企业如何用AI引流”时&#xff0c;你的企业信息根本搜不到。流量入口变了&#xff0c;传统SEO正在失效。如果能选对一家GEO服务商&#xff0c;就能在这个新战场里抢占先机。我…...

android使用websocket

简单来说常用的okhttp库就能用websocket了------------------------------------在 Android 上使用 WebSocket&#xff0c;你有几个常用选择&#xff0c;每个选择对应不同的库和集成方式。下面我帮你梳理清楚&#xff1a;1️⃣ 推荐库&#xff1a;OkHttpOkHttp 是 Android 官方…...

拒绝C盘爆红!自制 Windows 系统垃圾一键清理工具(精美UI设计)

你的 C盤 又红了吗&#xff1f;相信很多 Windows 用户都经历过被 **“C盘空间不足”** 支配的恐惧。随着日常办公、浏览网页、系统更新&#xff0c;各种临时文件和日志会悄悄吞噬掉我们珍贵的固态硬盘空间。市面上的清理软件鱼龙混杂&#xff0c;要么捆绑软件&#xff0c;要么后…...

物理标签退场,视觉原生上位:UWB vs 镜像视界无感定位・空间智能重构

物理标签退场&#xff0c;视觉原生上位&#xff1a;UWB vs 镜像视界无感定位・空间智能重构在空间智能加速重构物理世界的当下&#xff0c;全域感知技术正经历一场从“物理标签”到“视觉原生”的底层范式革命。长期以来&#xff0c;以UWB&#xff08;超宽带&#xff09;为代表…...

3个核心操作:让网络架构可视化变得如此简单

3个核心操作&#xff1a;让网络架构可视化变得如此简单 【免费下载链接】easy-topo vuesvgelement-ui 快捷画出网络拓扑图 项目地址: https://gitcode.com/gh_mirrors/ea/easy-topo 在数字时代的网络管理中&#xff0c;技术文档的可视化呈现已经成为专业沟通的关键。面对…...

Belkin向范围3排放碳中和目标迈进

该公司发布的《2025年环境影响报告》重点介绍了其在减排、循环设计和负责任包装方面取得的持续进展 发布了《2025年环境影响报告》&#xff08;2025 Impact Report&#xff09;&#xff0c;重点介绍了关键成就&#xff0c;并重申了其对企业社会责任的承诺。在2025年实现范围1和…...