Java学习笔记_15 项目实战之天天酷跑(二):开始游戏界面
前文,我们完成了登录界面的搭建。本文将完成开始游戏界面的搭建,并建立起登录界面与开始游戏界面的桥梁。
实现在输对用户名和密码后即可进入开始游戏界面的功能。
界面功能需求图:
具体要求:
当鼠标移入开始游戏按钮后,按钮将由暗变亮,鼠标移开后,按钮又由亮变暗。
帮助、离开按钮同理。
另外,当点击离开时,需要实现关闭当前界面的效果。
上代码:
package cn.sqc.runday.view;import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.File;
import java.io.IOException;import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;import cn.sqc.runday.controller.WindowFrame;public class MainFrame extends JFrame implements MouseListener {//设置窗体的基本属性 大小/*** 1.1、设置窗体基本属性大小 居中 边框隐藏 默认关闭按钮 logo图标1.2、创建背景面板MainPanel,实现背景图片功能2.图片按钮功能*///2.1创建开始按钮 帮助按钮 离开按钮 组件JLabel start,help,exit;JPanel MainPanel;public MainFrame() {//无参构造,创建对象。并在main函数中调用//2.2start = new JLabel(new ImageIcon("Image/hh1.png"));//ImageIcon:图标start.setBounds(350,320,150,40);start.setEnabled(false);//false按钮为灰色 start.addMouseListener(this);this.add(start);help = new JLabel(new ImageIcon("Image/hh2.png"));help.setBounds(350,420,150,40);help.setEnabled(false);help.addMouseListener(this);this.add(help);exit = new JLabel(new ImageIcon("Image/hh3.png"));exit.setBounds(350, 520, 150, 40);exit.setEnabled(false);exit.addMouseListener(this);this.add(exit);/**1.实现背景图片及窗体属性*/MainPanel panel = new MainPanel();this.add(panel);//设置窗体基本属性大小 居中 边框隐藏 默认关闭按钮 logo图标this.setSize(1200,730);//大小this.setLocationRelativeTo(null);//居中this.setUndecorated(true);//边框隐藏this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//默认关闭this.setIconImage(new ImageIcon("Image/115.png").getImage());//logothis.setVisible(true); }public static void main(String[] args) {new MainFrame();}//2、创建背景面板MainPanel,实现背景图片功能class MainPanel extends JPanel{//创建的MainPanel类,在MainFrame中调用Image background; public MainPanel() {try {background = ImageIO.read(new File("Image/main.png"));} catch (IOException e) {e.printStackTrace();}}@Overridepublic void paint(Graphics g) {super.paint(g);g.drawImage(background, 0, 0,1200,730, null);}}//以下五个方法均为添加 implements MouseListener 后,快捷出来的@Overridepublic void mouseClicked(MouseEvent e) {//鼠标点击if(e.getSource().equals(start)){//跳转到下一界面new WindowFrame().Start();//关闭当前界面//dispose();}else if(e.getSource().equals(exit)){dispose();}else if(e.getSource().equals(help)){JOptionPane.showMessageDialog(null, "有疑问请联系开发者:Huey");}}@Overridepublic void mousePressed(MouseEvent e) {// TODO Auto-generated method stub}@Overridepublic void mouseReleased(MouseEvent e) {// TODO Auto-generated method stub}@Overridepublic void mouseEntered(MouseEvent e) {// 鼠标移入if(e.getSource().equals(start)){//e指一个事件。e.getSource()获取事件//如果鼠标移入到(start)组件(图片按钮)start.setEnabled(true);}else if(e.getSource().equals(help)){help.setEnabled(true);}else if(e.getSource().equals(exit)){exit.setEnabled(true);}}@Overridepublic void mouseExited(MouseEvent e) {//鼠标移出if(e.getSource().equals(start)){start.setEnabled(false);}else if(e.getSource().equals(help)){help.setEnabled(false);}else if(e.getSource().equals(exit)){exit.setEnabled(false);}}
}
测试:
先填补上文的缺憾,加上new MainFrame();语句。调用我们刚刚写好的开始游戏界面。
登录界面:
单击确定
完美进入我们写好的登录游戏界面:
现在看开始游戏按钮:
帮助按钮:
点击帮助按钮:
退出按钮:
点击:
大功告成!
个人学习笔记,若有误还望不吝赐教。
Java学习笔记_15 项目实战之天天酷跑(二):开始游戏界面相关推荐
- Java学习笔记_16 项目实战之天天酷跑(三):缓冲加载游戏界面
前文,我们完成了开始游戏界面的搭建.本文将实现缓冲加载界面的搭建.并搭建与前面俩界面间的桥梁. 实现输入正确用户名密码后,进入开始游戏界面,点击开始游戏按钮后,进入缓冲加载界面的功能. 界面示意图: ...
- Java学习笔记_17 项目实战之天天酷跑(四):游戏主界面
接上文,本文将实现游戏主界面,功能如下: 移动的背景图片.动态的玩家.玩家的移动功能. 五种障碍物持续出现.玩家和障碍物的碰撞. 暂停.继续功能. 首先,看一下整体效果: 动图实在太大,几秒钟的 Gi ...
- 模拟天天酷跑游戏java_Java学习笔记_17 项目实战之天天酷跑(四):游戏主界面...
package cn.sqc.runday.model; import java.awt.Graphics; import java.awt.Image; import java.io.File; i ...
- awt jtable 多线程加载图片_Java项目实战之天天酷跑(三):缓冲加载游戏界面
前文,我们完成了开始游戏界面的搭建.本文将实现缓冲加载界面的搭建.并搭建与前面俩界面间的桥梁.实现输入正确用户名密码后,进入开始游戏界面,点击开始游戏按钮后,进入缓冲加载界面的功能. 界面示意图: 具 ...
- 【Java练手项目七】Java项目实战之天天酷跑
首先,写一个需求文档: 一.项目名称:<天天酷跑>(RunDay) 二.功能介绍: 闯关类游戏,玩家登录后,选择进入游戏,通过键盘控制玩家的上下左右移动,来躲避 障碍物和吃金币,玩家躲避的 ...
- Java项目实战之天天酷跑
来源:blog.csdn.net/qq_45909299 首先,写一个需求文档: 一.项目名称:<天天酷跑>(RunDay) 二.功能介绍: 闯关类游戏,玩家登录后,选择进入游戏,通过键盘 ...
- java实现天天酷跑开发_Java项目实战之天天酷跑
作者:MyHuey 来源:blog.csdn.net/qq_45909299 首先,写一个需求文档: 一.项目名称:<天天酷跑>(RunDay) 二.功能介绍:闯关类游戏,玩家登录后,选择 ...
- java 实战_Java项目实战之天天酷跑
首先,写一个需求文档: 一.项目名称:<天天酷跑>(RunDay) 二.功能介绍: 闯关类游戏,玩家登录后,选择进入游戏,通过键盘控制玩家的上下左右移动,来躲避 障碍物和吃金币,玩家躲避的 ...
- java窗体添加背景图片_Java项目实战之实战之天天酷跑(四):游戏主界面
接上文,本文将实现游戏主界面,功能如下: 移动的背景图片.动态的玩家.玩家的移动功能.五种障碍物持续出现.玩家和障碍物的碰撞.暂停.继续功能. 首先,看一下整体效果: 动图实在太大,几秒钟的 Gif ...
最新文章
- 高性能的MySQL(5)索引策略
- POJ - 2411 Mondriaan's Dream(状压dp)
- 自然语言处理与文本检索
- 《玩转掌上生活——手机网上生活达人秘笈》一1.2 迎接掌上生活
- Python数据挖掘笔记 七 .PCA降维操作及subplot子图绘制
- 【Flink】Flink 资源相关 Slot SlotPool
- 星际争霸战略战术的发展和创新
- 防火墙技术之--状态防火墙ASPF(2)
- 魔百盒服务器响应超时,hitool烧写fastboot提示超时,我的两个都是这么回事,怎么办?...
- 有关《家》的经典歌曲_著名音乐人-二十首最棒的励志歌曲推荐
- Android Studio Offline work mode
- SourceTree和Bitbucket使用时的注意事项
- 基于FPGA的视频图像拼接融合(附源码)。
- java火星坐标与真实坐标的转换
- 搭建微信小游戏开发环境总结
- winserver修改计算机用户名,windows10系统更改账户名称的方法
- 使用chrom访问本地项目需要输入http
- Postgresql源码(5)缓冲区管理
- 修改Android默认启动项launcher
- YDWE一按键盘就卡死问题解决方法
热门文章
- codeforces 776C
- 你了解这么多万兆以太网规范吗?
- 天融信防火墙重置配置_天融信防火墙认证配置
- 迈向太赫兹时代:解决通讯业三大痛点 BNET开创6G时代
- 思一独角兽游戏 | 综艺高能玩家:看中医刘昊然、区块链圈90后CEO如何玩转高智商棋牌游戏 | SIU
- 线上问题:stream获取值抛出空指针及源码分析
- 厉害了,我的中国造@主动发力还是借力打力?——思华科技18年自主创新经验谈(上篇)...
- 计算机算法与程序设计知识点,算法与程序设计知识点(答案)
- 模仿Airbnb的悬浮搜索框动画
- input onchange事件