网络

教育改变生活

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1602|回复: 0
打印 上一主题 下一主题

[Java] Java项目实战之天天酷跑(三)

[复制链接]

271

主题

284

帖子

1243

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1243

最佳新人活跃会员热心会员突出贡献优秀版主

跳转到指定楼层
楼主
发表于 2021-2-24 19:32:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
二、开始游戏界面
前文,我们完成了登录界面的搭建。接下来将完成开始游戏界面的搭建,并建立起登录界面与开始游戏界面的桥梁。
实现在输对用户名和密码后即可进入开始游戏界面的功能。
界面功能需求图:具体要求:
当鼠标移入开始游戏按钮后,按钮将由暗变亮,鼠标移开后,按钮又由亮变暗。
帮助、离开按钮同理。
另外,当点击离开时,需要实现关闭当前界面的效果。
上代码:
  1. package cn.sqc.runday.view;

  2. import java.awt.Graphics;
  3. import java.awt.Image;
  4. import java.awt.event.MouseEvent;
  5. import java.awt.event.MouseListener;
  6. import java.io.File;
  7. import java.io.IOException;

  8. import javax.imageio.ImageIO;
  9. import javax.swing.ImageIcon;
  10. import javax.swing.JFrame;
  11. import javax.swing.JLabel;
  12. import javax.swing.JOptionPane;
  13. import javax.swing.JPanel;

  14. import cn.sqc.runday.controller.WindowFrame;

  15. public class MainFrame extends JFrame implements MouseListener {
  16.         //设置窗体的基本属性        大小
  17.         /**
  18.          *  1.1、设置窗体基本属性大小 居中 边框隐藏 默认关闭按钮 logo图标
  19.                 1.2、创建背景面板MainPanel,实现背景图片功能
  20.                
  21.                 2.图片按钮功能
  22.          */
  23.         //2.1创建开始按钮 帮助按钮 离开按钮 组件
  24.         JLabel start,help,exit;
  25.         
  26.         JPanel MainPanel;
  27.         
  28.         public MainFrame() {//无参构造,创建对象。并在main函数中调用
  29.                 //2.2
  30.                 start = new JLabel(new ImageIcon("Image/hh1.png"));//ImageIcon:图标
  31.                 start.setBounds(350,320,150,40);
  32.                 start.setEnabled(false);//false按钮为灰色               
  33.                 start.addMouseListener(this);
  34.                 this.add(start);
  35.                
  36.                 help = new JLabel(new ImageIcon("Image/hh2.png"));
  37.                 help.setBounds(350,420,150,40);
  38.                 help.setEnabled(false);
  39.                 help.addMouseListener(this);
  40.                 this.add(help);
  41.                
  42.                 exit = new JLabel(new ImageIcon("Image/hh3.png"));
  43.                 exit.setBounds(350, 520, 150, 40);
  44.                 exit.setEnabled(false);
  45.                 exit.addMouseListener(this);
  46.                 this.add(exit);
  47.                         
  48.                
  49.                 /**1.实现背景图片及窗体属性*/
  50.                 MainPanel panel = new MainPanel();
  51.                 this.add(panel);
  52.                
  53.                 //设置窗体基本属性大小 居中 边框隐藏 默认关闭按钮 logo图标
  54.                 this.setSize(1200,730);//大小
  55.                 this.setLocationRelativeTo(null);//居中
  56.                 this.setUndecorated(true);//边框隐藏
  57.                 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//默认关闭
  58.                 this.setIconImage(new ImageIcon("Image/115.png").getImage());//logo
  59.                 this.setVisible(true);                        
  60.         }
  61.         
  62.         public static void main(String[] args) {
  63.                 new MainFrame();
  64.         }
  65.         
  66.         //2、创建背景面板MainPanel,实现背景图片功能
  67.         class MainPanel extends JPanel{//创建的MainPanel类,在MainFrame中调用
  68.         Image background;               
  69.         public MainPanel() {
  70.                 try {
  71.                         background = ImageIO.read(new File("Image/main.png"));
  72.                 } catch (IOException e) {
  73.                         e.printStackTrace();
  74.                 }
  75.         }
  76.         @Override
  77.         public void paint(Graphics g) {
  78.                 super.paint(g);
  79.                 g.drawImage(background, 0, 0,1200,730, null);
  80.                 }
  81.         }
  82.         
  83.         

  84. //以下五个方法均为添加 implements MouseListener 后,快捷出来的
  85.         @Override
  86.         public void mouseClicked(MouseEvent e) {
  87.                 //鼠标点击
  88.                 if(e.getSource().equals(start)){
  89.                         //跳转到下一界面
  90.                         new WindowFrame().Start();
  91.                         //关闭当前界面
  92.                                 //dispose();
  93.                 }else if(e.getSource().equals(exit)){
  94.                         dispose();
  95.                 }else if(e.getSource().equals(help)){
  96.                         JOptionPane.showMessageDialog(null, "有疑问请联系开发者:Huey");
  97.                 }
  98.                
  99.         }




  100.         @Override
  101.         public void mousePressed(MouseEvent e) {
  102.                 // TODO Auto-generated method stub
  103.                
  104.         }




  105.         @Override
  106.         public void mouseReleased(MouseEvent e) {
  107.                 // TODO Auto-generated method stub
  108.                
  109.         }




  110.         @Override
  111.         public void mouseEntered(MouseEvent e) {
  112.                 // 鼠标移入
  113.                 if(e.getSource().equals(start)){//e指一个事件。e.getSource()获取事件
  114.                         //如果鼠标移入到(start)组件(图片按钮)
  115.                         start.setEnabled(true);
  116.                 }else if(e.getSource().equals(help)){
  117.                         help.setEnabled(true);
  118.                 }else if(e.getSource().equals(exit)){
  119.                         exit.setEnabled(true);
  120.                 }
  121.         }




  122.         @Override
  123.         public void mouseExited(MouseEvent e) {
  124.                 //鼠标移出
  125.                         if(e.getSource().equals(start)){
  126.                                 start.setEnabled(false);
  127.                 }else if(e.getSource().equals(help)){
  128.                         help.setEnabled(false);
  129.                 }else if(e.getSource().equals(exit)){
  130.                         exit.setEnabled(false);
  131.                 }
  132.         }
  133. }
复制代码


测试:
先填补上文的缺憾,加上new MainFrame();语句。调用我们刚刚写好的开始游戏界面。
登录界面:
单击确定
完美进入我们写好的登录游戏界面:
现在看开始游戏按钮:
帮助按钮:
点击帮助按钮:
退出按钮:
点击:
大功告成!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

WEB前端

QQ|手机版|小黑屋|金桨网|助学堂  咨询请联系站长。

GMT+8, 2025-1-3 09:57 , Processed in 0.036323 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表