目录及源码链接https://blog.csdn.net/coolyuan/article/details/107169180

效果展示:

实现方法:

1.窗口添加背景图

窗口添加背景图实现方法

2.打字游戏标题的自动下落

标题的自动下落其实上也是打字游戏的精髓代码之所在,只要理解了如何实现标题下落,那么数字下落问题也可如法炮制。
实现标题自动下落的本质实际上就是将标题画在一个画布上,然后擦掉标题,修改标题位置后再次重绘,只要反复重绘的速度够快,就形成了标题在自动下落的感觉。
实现方法是新建一个JPanel的子类(为了实现重绘)并且实现runnable接口(等等为了新建一个线程,让标题下落和其他的任务可以并发执行)

/*在一个面板上实现标题自动下落*/
class Title extends JPanel implements Runnable {int width = 500;int height = 250;int N = 4;int[] x = new int[N];//存储标题中的每个字的横坐标int[] y = new int[N];//存储标题中的每个字的纵坐标String[] strs = new String[]{"打", "字", "游", "戏"};Title() {setBounds(0, 0, width, height);//设置面板大小setOpaque(false);//透明setplace();//设置标题每个字初始的横纵坐标}void setplace() {for (int i = 0; i < N; i++) {x[i] = (int) (width * 0.15 + i * 0.2 * width);y[i] = 10;}}@Overridepublic void paint(Graphics g) {super.paint(g);g.setColor(Color.RED);//设置画笔颜色为红g.setFont(new Font("方正姚体", Font.PLAIN, 50));//设置画笔字体for (int i = 0; i < N; i++) {g.drawString(strs[i], x[i], y[i]);//在指定位置画出标题的字y[i]++;//标题的字纵坐标下移一像素if (y[i] > height - 50) {//如果到达height-50,则保持在那个位置y[i] = height - 50;}}}@Overridepublic void run() {while (true) {try {Thread.sleep(10);//实现每10毫秒重绘一次} catch (InterruptedException e) {e.printStackTrace();}repaint();//调用重绘函数}}
}

然后再主窗口添加该标题面板,并启动线程

Title title = new Title();//新建一个标题对象this.add(title);//往窗口中加入标题面板Thread t = new Thread(title);//将标题面板加入一个线程t.start();//启动线程,实现标题面板下落

3.鼠标进入按钮范围内自动圈起

本人嫌弃JButton太丑,因此用JLabel代替,圈起的实现只需要给每个JLabel添加鼠标适配器,当鼠标
进入JLabel区域时,重写 mouseEntered方法,给JLabel添加边框,重写mouseExited方法,设置JLabel无边框,如:

 exitjb.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {System.exit(0);}public void mouseEntered(MouseEvent e) {exitjb.setBorder(BorderFactory.createMatteBorder(2, 2, 2, 2, Color.LIGHT_GRAY));}@Overridepublic void mouseExited(MouseEvent e) {exitjb.setBorder(null);}});

ps:被老师问过 MouseAdapter()这块东西是什么,当初以为能new的应该就是个普通的类,结果打脸了。
Ctrl+鼠标左键查看MouseAdapter,

知道了MouseAdapter是个抽象类,实现了MouseListener等接口,因此可以使用MouseAdapter的子类创建的对象做监视器,只需重写需要的接口方法即可。
new MouseAdapter()实际上就是new了一个继承了MouseAdapter抽象类的匿名内部类。

打字游戏之主界面实现相关推荐

  1. Android疯狂猜歌游戏之---------主界面布局

    第一小节链接: http://www.imooc.com/wenda/detail/256551

  2. 从零开始实现放置游戏(十一)——实现战斗挂机(2)注册登陆和游戏主界面

    本章主要实现注册登陆功能和游戏的主界面.有了游戏的界面,大家能有更直观的认识. 本章我们主要开发的是idlewow-game模块,其实就是游戏的客户端展示层.因为是放置游戏,为了方便,主要使用spri ...

  3. 进入游戏后如何回到计算机界面,网易云我的世界电脑版怎样回到游戏主界面 | 手游网游页游攻略大全...

    发布时间:2015-09-06 暖暖环游世界是近期深受广大玩家喜爱的一款冒险生活类游戏,对于喜欢用电脑体验游戏的玩家来说,怎么在PC上玩暖暖环游世界呢,今日就为玩家带来暖暖环游世界电脑版安装教程. 暖 ...

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

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

  5. Unity游戏开发日记(一):独自开发2d横板游戏:Small man(MainMenu主界面)基本构建

    目录 一.独自开发想法 前言: 开发构想: 二.主要内容:MainMenu主界面基本构建 (一)预想功能 (二)功能实现 1.主界面UI设计 2.Option功能设计 3.TypeOption功能设计 ...

  6. 跟着BOY学习开发cocos2d-x 游戏 实战篇(4)之 游戏主界面 -----怪物系统---赌徒来袭

    兄弟们相比等这一章 等的时间比较长了吧!呵呵这几天公司的事情比较忙每天都只有晚上回来写会.所以进度慢了,不过兄弟们放心 我会坚持把这个游戏写完的写成一个可以买的游戏!哈哈 吹下牛了 其实在开发游戏的过 ...

  7. [Untiy]贪吃蛇大作战(四)——游戏主界面

    游戏主界面: 由于这个场景比较复杂,需要分几个部分实现: 1.游戏背景 首先我们的游戏场景上包括了一个大的背景图片,之外再包围一个红色的区域.中间的区域才是可活动的区域,周围通过碰撞检测盒来检测是否有 ...

  8. 新飞飞不显示服务器,《新飞飞》新手指南:游戏主界面介绍

    游戏主界面 1.角色信息窗口(详见图2) 2.地图等各项信息及功能窗口(详见图3) 3.公告广播频道 4.聊天框 5.系统消息及循环公告 6.左侧快捷栏(详见图4) 7.中间快捷栏(详见图5) 8.右 ...

  9. 从零开始做一个SLG游戏(四):UI系统之主界面搭建

    地图部分也已经算是可以告一段落了,也需要仔细考虑下接下来该做哪个系统.地图部分可以算是六边形地图的SLG游戏最主要的一部分,所以先做了下练练手. 接下来的工作更多的需要从项目的全局角度来考虑该怎么做. ...

最新文章

  1. 意念打字、梦境重现如何成真,张钹、李路明等知名专家共话脑机接口最新进展 | 首届脑科学开放日...
  2. java主界面设置背景图片_java 窗体设置背景图片问题?(附上登陆界面代码,我想加个背景图片,求大神帮忙改改)...
  3. python 2x可以打么_Python打基础一定要吃透这68个内置函数
  4. Java 多个异常处理
  5. vue中既可以选择又可以手动输入的文本框类型_在PPT中制作一个胖乎乎的可爱圆环图...
  6. mysql 单块读 多块读_求指点:STM32F103VC的SDIO读SD卡单块读成功,多块读却不行?...
  7. SaltStack Runners
  8. 计算机重置指令,如何利用指令重置Win7网络设置
  9. 位置式数字PI控制器C语言
  10. 如何利用Python进行数据分析
  11. 红月OD反汇编实时显示坐标,背景色可透明也可以不透明
  12. win10时间线时间轴(Timeline)如何关闭隐藏?
  13. 解析MySQL ibd文件
  14. FlashBuilder找不到所需要的AdobeFlashPlayer调试器版本的解
  15. Hystrix解决雪崩问题
  16. Windows10系统电脑怎么查看自己电脑虚拟化技术是否开启?
  17. 抗超大规模DDOS攻击
  18. ROM制作工具V1.0.0.22版本全新推出
  19. qml 应用程序图标设置和打包——qml
  20. 线上支付,出款和收款

热门文章

  1. 基于面部视频的实时心率检测系统 day four
  2. Spring Boot实践 | 利用Spring Security快速搞定权限控制
  3. 各种音视频编解码标准
  4. 如何在生产环境mysql删除亿万级数据解并且不影响数据库主从延迟的解决方案
  5. 聊聊如何实施负载均衡
  6. XMind:超越FreeMind的思维导图软件
  7. java构造方法中this_Java中this关键字在构造方法中的使用
  8. win10多任务处理快捷键
  9. mac php 连接 mssql 2008,php5.3.x连接MSSQLserver2008
  10. sqlitespy可以打开MySQL吗_SQLite 数据库访问