前文,我们完成了登录界面的搭建。本文将完成开始游戏界面的搭建,并建立起登录界面与开始游戏界面的桥梁。
实现在输对用户名和密码后即可进入开始游戏界面的功能。

界面功能需求图:

具体要求:

当鼠标移入开始游戏按钮后,按钮将由暗变亮,鼠标移开后,按钮又由亮变暗。

帮助、离开按钮同理。

另外,当点击离开时,需要实现关闭当前界面的效果。

上代码:

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 项目实战之天天酷跑(二):开始游戏界面相关推荐

  1. Java学习笔记_16 项目实战之天天酷跑(三):缓冲加载游戏界面

    前文,我们完成了开始游戏界面的搭建.本文将实现缓冲加载界面的搭建.并搭建与前面俩界面间的桥梁. 实现输入正确用户名密码后,进入开始游戏界面,点击开始游戏按钮后,进入缓冲加载界面的功能. 界面示意图: ...

  2. Java学习笔记_17 项目实战之天天酷跑(四):游戏主界面

    接上文,本文将实现游戏主界面,功能如下: 移动的背景图片.动态的玩家.玩家的移动功能. 五种障碍物持续出现.玩家和障碍物的碰撞. 暂停.继续功能. 首先,看一下整体效果: 动图实在太大,几秒钟的 Gi ...

  3. 模拟天天酷跑游戏java_Java学习笔记_17 项目实战之天天酷跑(四):游戏主界面...

    package cn.sqc.runday.model; import java.awt.Graphics; import java.awt.Image; import java.io.File; i ...

  4. awt jtable 多线程加载图片_Java项目实战之天天酷跑(三):缓冲加载游戏界面

    前文,我们完成了开始游戏界面的搭建.本文将实现缓冲加载界面的搭建.并搭建与前面俩界面间的桥梁.实现输入正确用户名密码后,进入开始游戏界面,点击开始游戏按钮后,进入缓冲加载界面的功能. 界面示意图: 具 ...

  5. 【Java练手项目七】Java项目实战之天天酷跑

    首先,写一个需求文档: 一.项目名称:<天天酷跑>(RunDay) 二.功能介绍: 闯关类游戏,玩家登录后,选择进入游戏,通过键盘控制玩家的上下左右移动,来躲避 障碍物和吃金币,玩家躲避的 ...

  6. Java项目实战之天天酷跑

    来源:blog.csdn.net/qq_45909299 首先,写一个需求文档: 一.项目名称:<天天酷跑>(RunDay) 二.功能介绍: 闯关类游戏,玩家登录后,选择进入游戏,通过键盘 ...

  7. java实现天天酷跑开发_Java项目实战之天天酷跑

    作者:MyHuey 来源:blog.csdn.net/qq_45909299 首先,写一个需求文档: 一.项目名称:<天天酷跑>(RunDay) 二.功能介绍:闯关类游戏,玩家登录后,选择 ...

  8. java 实战_Java项目实战之天天酷跑

    首先,写一个需求文档: 一.项目名称:<天天酷跑>(RunDay) 二.功能介绍: 闯关类游戏,玩家登录后,选择进入游戏,通过键盘控制玩家的上下左右移动,来躲避 障碍物和吃金币,玩家躲避的 ...

  9. java窗体添加背景图片_Java项目实战之实战之天天酷跑(四):游戏主界面

    接上文,本文将实现游戏主界面,功能如下: 移动的背景图片.动态的玩家.玩家的移动功能.五种障碍物持续出现.玩家和障碍物的碰撞.暂停.继续功能. 首先,看一下整体效果: 动图实在太大,几秒钟的 Gif ...

最新文章

  1. 高性能的MySQL(5)索引策略
  2. POJ - 2411 Mondriaan's Dream(状压dp)
  3. 自然语言处理与文本检索
  4. 《玩转掌上生活——手机网上生活达人秘笈》一1.2 迎接掌上生活
  5. Python数据挖掘笔记 七 .PCA降维操作及subplot子图绘制
  6. 【Flink】Flink 资源相关 Slot SlotPool
  7. 星际争霸战略战术的发展和创新
  8. 防火墙技术之--状态防火墙ASPF(2)
  9. 魔百盒服务器响应超时,hitool烧写fastboot提示超时,我的两个都是这么回事,怎么办?...
  10. 有关《家》的经典歌曲_著名音乐人-二十首最棒的励志歌曲推荐
  11. Android Studio Offline work mode
  12. SourceTree和Bitbucket使用时的注意事项
  13. 基于FPGA的视频图像拼接融合(附源码)。
  14. java火星坐标与真实坐标的转换
  15. 搭建微信小游戏开发环境总结
  16. winserver修改计算机用户名,windows10系统更改账户名称的方法
  17. 使用chrom访问本地项目需要输入http
  18. Postgresql源码(5)缓冲区管理
  19. 修改Android默认启动项launcher
  20. YDWE一按键盘就卡死问题解决方法

热门文章

  1. codeforces 776C
  2. 你了解这么多万兆以太网规范吗?
  3. 天融信防火墙重置配置_天融信防火墙认证配置
  4. 迈向太赫兹时代:解决通讯业三大痛点 BNET开创6G时代
  5. 思一独角兽游戏 | 综艺高能玩家:看中医刘昊然、区块链圈90后CEO如何玩转高智商棋牌游戏 | SIU
  6. 线上问题:stream获取值抛出空指针及源码分析
  7. 厉害了,我的中国造@主动发力还是借力打力?——思华科技18年自主创新经验谈(上篇)...
  8. 计算机算法与程序设计知识点,算法与程序设计知识点(答案)
  9. 模仿Airbnb的悬浮搜索框动画
  10. input onchange事件