JAVA-12-项目(以拼图游戏为例)-02/04
1.项目介绍与界面搭建GUI(Graphical User Interface)图形用户接口。采用图像化的方式显示操作界面//JFrame 可以理解为 JaveBean类 JFrame gameJframe new JFrame();2.界面设置//设置界面的宽高this.setSize(603,680); this可以省略不写 //设置界面标题this.setTitle(拼图单机版 v1.0); //设置界面置顶this.setAlwaysOnTop(true); //设置界面居中this.setLocationRelativeTo(null); //设置游戏关闭模式this.setDefaultCloseOperation(3); //设置显示界面窗口(建议写到最后)this.setVisible(true);3.菜单制作//初始化菜单JMenuBar jMenuBar new JMenuBar();JMenu jMenu new JMenu(text); JMenuItem jMenuItem new JMenuItem(text);//初始化菜单 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);4.添加图片//创建一个图片ImageIcon的对象ImageIconicon new ImageIcon(图片地址);//创建一个JLabel的对象管理容器JLabeljLabel new JLabel(icon);//添加图片指定图片位置setBounds(X,Y,width,height)pxjLabel.setBounds(0,0,105,105);//添加图片去除默认位置this.setLayout(null);//取消默认居中位置只有取消了才会按照XY轴的形式添加组件//窗体窗体.getContentPane().add(JLabel对象);//先获取到里面隐藏容器再添加隐藏容器打乱图片练习打乱一维数组中的数据遇到的问题图片加载数量每次都不一样private void initData() { 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; //遍历一维数组tempArr得到每一个元素把每一个元素依次添加到二维数组中: for (int i 0; i tempArr.length; i) { data[i / 4][i % 4] tempArr[i]; } } }5.事件KeyListener 键盘监听Override public void keyTyped(KeyEvent e) { //按下能产生可打印字符 触发 } Override public void keyPressed(KeyEvent e) { //按下任意键可以触发 } Override public void keyReleased(KeyEvent e) { //松开触发的事件 }MouseListener 鼠标监听ActionListener 动作监听按钮对象6.美化界面7.移动图片//获取按键值int code e.getKeyCode();//给整个类增加按键监听this.addKeyListener(this);//刷新一下界面this.getContentPane().repaint();//清空已经出现的所有图片this.getContentPane().removeAll();8.查看完整图片作弊码判断胜利if (code 65) { //松开A后还原 //清除所有图片,initImage内已包含 initImage(); //重新加载 } else if (code 87) { //87: w 键一键还原 一件通关 data new int[][]{ {1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13,14,15,0} }; //重新加载图片 initImage(); } } //创建胜利方法 public boolean victory() { //循环一一对比 for (int i 0; i 4; i) { for (int j 0; j 4; j) { if (win[i][j] !data[i][j]) { return false; } } } return true; }9.登录注册界面

相关新闻

乘浪而上,赴智能之约:读《浪潮之巅》感悟时代与成长

乘浪而上,赴智能之约:读《浪潮之巅》感悟时代与成长

“近一百多年以来,总有一些公司很幸运地、有意无意地站在技术革命的浪尖之上,一旦处在那个位置,即使不做任何事,也可以随着波浪顺顺当当向前漂十年甚至更长时间。在这十几年到几十年间,它们代表着科技的浪潮&#xff0…

2026/5/17 11:27:50 阅读更多 →
MCP简单介绍

MCP简单介绍

一.MCP概念在介绍MCP之前,我们先来看一个日常问题想象一下,你在用ChatGPT这样的AI助手,你问它:"帮我看看今天的日程安排"。AI回答:"抱歉,我看不到你的日程表。为什么呢?因为AI就像一个关在房间里的超级聪明的人:它…

2026/7/5 19:15:01 阅读更多 →
嵌入式八股文学习-自学长期更新-2026

嵌入式八股文学习-自学长期更新-2026

总感觉没有系统学清,或者说,学完之后,还是迷迷糊糊,想必还是得知道一些理论套话。慢慢来吧,希望系统学完能手搓些什么出来玩玩,听说得学习别人开源代码才能快速提升,好嘞,加油。 参…

2026/7/5 15:55:19 阅读更多 →

最新新闻

终极OnionOS使用指南:为Miyoo Mini/Mini+打造完美复古游戏体验

终极OnionOS使用指南:为Miyoo Mini/Mini+打造完美复古游戏体验

终极OnionOS使用指南:为Miyoo Mini/Mini打造完美复古游戏体验 【免费下载链接】Onion OS overhaul for Miyoo Mini and Mini 项目地址: https://gitcode.com/gh_mirrors/on/Onion OnionOS是一款专为Miyoo Mini和Mini掌机设计的增强型操作系统,通过…

2026/7/6 20:33:46 阅读更多 →
SRN-Deblur技术原理揭秘:Scale-recurrent Network如何实现高效图像去模糊

SRN-Deblur技术原理揭秘:Scale-recurrent Network如何实现高效图像去模糊

SRN-Deblur技术原理揭秘:Scale-recurrent Network如何实现高效图像去模糊 【免费下载链接】SRN-Deblur Repository for Scale-recurrent Network for Deep Image Deblurring 项目地址: https://gitcode.com/gh_mirrors/sr/SRN-Deblur SRN-Deblur是一个基于Sc…

2026/7/6 20:31:46 阅读更多 →
nest_asyncio 常见问题解答(FAQ):解决开发者遇到的实际问题

nest_asyncio 常见问题解答(FAQ):解决开发者遇到的实际问题

nest_asyncio 常见问题解答(FAQ):解决开发者遇到的实际问题 【免费下载链接】nest_asyncio Patch asyncio to allow nested event loops 项目地址: https://gitcode.com/gh_mirrors/ne/nest_asyncio nest_asyncio 是一个专为解决 Pyth…

2026/7/6 20:29:45 阅读更多 →
FAST-LIVO 紧耦合框架解析:LIO与VIO子系统如何共享3D点云地图

FAST-LIVO 紧耦合框架解析:LIO与VIO子系统如何共享3D点云地图

FAST-LIVO紧耦合框架深度解析:激光与视觉的协同进化 1. 多传感器融合SLAM的技术演进 在机器人自主导航领域, 环境感知与位姿估计 的精度直接决定了系统的可靠性。传统单一传感器方案存在明显局限:纯视觉SLAM在弱光、无纹理环境中表现欠佳&…

2026/7/6 20:29:45 阅读更多 →
揭秘gh_mirrors/presentations170/presentations:探索JavaScript组合子的强大世界

揭秘gh_mirrors/presentations170/presentations:探索JavaScript组合子的强大世界

揭秘gh_mirrors/presentations170/presentations:探索JavaScript组合子的强大世界 【免费下载链接】presentations Conference Talks and Proposals 项目地址: https://gitcode.com/gh_mirrors/presentations170/presentations 在软件开发领域,Ja…

2026/7/6 20:27:45 阅读更多 →
如何快速配置yazi:打造高效终端文件管理环境的完整指南

如何快速配置yazi:打造高效终端文件管理环境的完整指南

如何快速配置yazi:打造高效终端文件管理环境的完整指南 【免费下载链接】yazi 💥 Blazing fast terminal file manager written in Rust, based on async I/O. 项目地址: https://gitcode.com/GitHub_Trending/ya/yazi 你是不是还在为终端文件管理…

2026/7/6 20:27:45 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻