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.2
		start = 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());//logo
		this.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();
		}
	}
	@Override
	public void paint(Graphics g) {
		super.paint(g);
		g.drawImage(background, 0, 0,1200,730, null);
		}
	}
	
	

//以下五个方法均为添加 implements MouseListener 后,快捷出来的
	@Override
	public 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");
		}
		
	}




	@Override
	public void mousePressed(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}




	@Override
	public void mouseReleased(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}




	@Override
	public 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);
		}
	}




	@Override
	public 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();语句。调用我们刚刚写好的开始游戏界面。

在这里插入图片描述
登录界面:
在这里插入图片描述
单击确定

在这里插入图片描述

完美进入我们写好的登录游戏界面:
在这里插入图片描述
现在看开始游戏按钮:
在这里插入图片描述
帮助按钮:在这里插入图片描述
点击帮助按钮:

在这里插入图片描述

退出按钮:在这里插入图片描述
点击:在这里插入图片描述
大功告成!

个人学习笔记,若有误还望不吝赐教。

  • 8
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
SSM框架学习宝典:入门、进阶、精通,全方位代码项目资 一、探索SSM的无限可能 SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一层楼。 、资料亮点 基础教程与练习项目:从基础知识讲起,结合实际练习项目,让您轻松上手SSM开发。 进阶技术与案例分析:针对进阶开发者,提供深入的技术探讨和案例分析,助您深入理解SSM的高级特性。 实战项目与经验分享:通过实际项目实战,让您在实践中掌握SSM的运用,同时分享经验与心得,让您少走弯路。 三、适用人群与场景 无论您是初学者还是资深开发者,无论您是在校学生还是职场人士,本系列资料都将是您学习SSM的得力助手。适用于Java Web开发、企业级应用开发、个人项目实践等多个领域。 四、使用建议 系统学习:按照资料提供的顺序进行系统学习,确保知识体系的完整性。 实践为王:在学习过程中注重实践操作,通过实际项目加深理解。 持续反馈与调整:根据学习进度和反馈,适时调整学习策略,提高学习效果。 五、安全与责任 在使用SSM框架进行开发时,请确保遵循最佳实践和安全准则,以保障系统的稳定性和安全性。在使用提供的资料时,请遵守版权法规,尊重原作者的权益。让我们共同为推动SSM技术的发展而努力!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值