打字游戏之输入框功能的实现
目录及源码链接https://blog.csdn.net/coolyuan/article/details/107169180
要求
①输入三位数自动与屏幕中显示的数字比较,若相同则消除并重新生成数字,记录得分
②输入空格暂停,暂停时输入任意字符继续游戏
实现方法
新建一个JPanel,并在其中添加一个JTextField来获取输入的内容。
①实现功能输入三位数自动提交
往JTextField中添加一个继承适配器抽象类的匿名内部类来监听键盘事件。
键盘监听的方法有KeyPressed()、KeyTyped()、KeyReleased()。
下面我先进行一个测试,测试在这些方法中用文本框的getText()获取的文本框内容的差别:
先输入数字4,再输入数字5,
可见KeyPressed和KeyTyped会在你输入的文本字符添加到文本框之前调用,因此,为了要达到我们需要的目的,我就将长度比较的代码写在KeyReleased方法中。
方法如下:每次往文本框键入内容监听文本框内容的长度,若文本框长度大于等于3则用setText("")来清空文本框内容。
ps:
1.关于为何要大于等于三而不是单纯等于三的原因,是被我一个Hentai舍友试出来的,趁着键盘监听不注意,对着输入框一顿暴风输入,结果如下:
他输入的长度早比三大了,但是键盘监听器并不清空文本框输入的内容,因此要提防这种输入过快的情况,就需要将等于三改为大于等于三。
2.但是如果按照我的方法将代码都添加到KeyReleased中,会出现以下问题: 一是如果你的输入速度过快,会出现无法识别的现象。
二是如果你长按一个数字,文本框的文本会一直增加到你放下按键才会清空,我试过在KeyPressed中输入的文本检测长度,但是效果不佳,也就放弃了,有兴趣的读者可以去想办法解决看看。
②消除匹配的列并再生成新的列
当每次输入长度大于等于三时,获取文本框输入的内容,然后与之前建立的字符数组进行比较,若相同,则用讲过的生成随机数的方法再生成一个随机数(记得保证首位与其他的相同,而且要将其纵坐标置为原来的初始下落位置)
if (in.getText().length() >= 3) {input = in.getText();in.setText(""); for (int i = 0; i < N; i++) {if (input.equals(num[i])) {y[i] = 50;}num[i] = Integer.toString((int) (Math.random() * 900 + 100));while (true) {for (int j = 0; j < N; j++) {if (num[i].charAt(0) == num[j].charAt(0) && i != j){num[i] = Integer.toString((int) (Math.random() * 900 + 100));j = -1;}}break;}}}
打字游戏之输入框功能的实现相关推荐
- java结合swing多线程实现打字游戏
java实现简易打字游戏 写个博客写的心累啊 原本写好的后来网断了,还忘了保存草稿,然后一顿操作下来....现在在重写的路上. 咋也不多说啥了,直接上效果图吧 项目结构图如下.主要运行代码都在edu. ...
- python小游戏开发,使用python实现英语打字游戏
需求分析 英文打字小游戏,要有多界面交互,界面整洁.美观,可调节游戏等级难度,可配置游戏信息. 要有游戏分数,游戏时间,动画特效,背景音乐,不同游戏等级的历史最高分记录. 拼写成功的英文单词显示中文意 ...
- Linux打字游戏程序代码,c语言shell打字游戏.pdf
一.实验说明 1. 环境登录 无需密码自动登录 ,系统用户名shiyanlou ,密码shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境 ,实验中 用到桌面上的程序 ...
- Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第二篇)
Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第二篇) 代码实现 窗口类 小车类 玩家类 电脑类 赛道类 小树类 打字类 Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第一篇) ...
- python:pygame小游戏(三)—— 打字游戏
代码一:实现字符下落的基本功能 """ 打字游戏 1. 声明列表word.xx(x坐标值).yy(y坐标值) 2. 创建init()函数,初始化三个列表 3. 第四部分: ...
- 纯C语言实战-打字游戏
纯C语言的打字游戏 学了那么长时间C语言了,每天写出来的代码都是一个小黑框,也没写过好玩的东西,突然有了一个想法,能不能写一个C语言的小游戏呢?然后百度了半天,游戏很多,但是大多数都需要引入其他的库来 ...
- Python 打字小游戏开发,来体验不一样的打字游戏乐趣(完结篇)
Python 打字小游戏开发,来体验不一样的打字游戏乐趣(完结篇) 资源下载 完整代码 Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第一篇) Python 打字小游戏开发,来体验不一样的 ...
- Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第一篇)
Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第一篇) 前言 游戏素材准备 游戏项目结构 项目里面的类说明 Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第二篇) Python ...
- C语言大作业,可供学习---打字游戏
这是我做的一个大作业吧,其实十分简单,但功能挺多.其中的播放音乐代码可以自行删去,因其需要环境配置与对应wav格式的音频,运行的时候有对应规则,要仔细看哦! 众所周知,打字能力是一个大学生必备的基本技 ...
最新文章
- KeyMob:建立一个稳定的移动广告聚合平台!
- java servlet 请求_java servlet请求数据
- 网易智慧企业Node.js实践(1) | Node应用架构设计和React同构
- 11月27日struts项目练习评审
- JS之 if语句函数 对接事件动作 函数更改css css对接需要换妆的区id或class
- 实验八 java多线程操作_20182310实验八实验报告
- 再看到一则有关Anders的……
- sql server 符号函数sign
- 分布式系统设计理念为何这么难学?
- 南华大学计算机专业导师排名,南华大学研究生导师介绍:左国平-中公研招网...
- IntelliJ IDEA 使用教程(2019图文版)
- 正离子计算机扫描检测,扫描电子显微镜
- ios14.2越狱之后的一系列操作
- Android垂直方向滚动的跑马灯,带gif
- KEGG Orthology 数据库简介
- 洛谷P3376【模板】网络最大流
- 数据库学习之MySQL (十一)—— 统计函数 COUNT MIN MAX AVG SUM
- 途家木鸟美团夏日折扣对垒,门槛低就一定香吗?
- 康定游记-宝宝征服4300米海拔折多山
- 缓存冲突:SWR vs. TanStack Query for React
热门文章
- 安装opencv 3.4.1记录
- 传Facebook来华招聘:年薪20万美元+美国绿卡
- MySQL导入mdx_浅谈MDX数据库
- 漫画:什么是ConcurrentHashMap?
- android 静态注册获取电量,获取手机电池百分比和电池容量方法
- firefox装在linux_在 Linux 中安装 Firefox
- 万众电子期刊在线阅读系统(awd复现)
- electron打开系统默认浏览器
- Linux下CGroup进行CPU、内存等资源控制
- java mye_JAVA环境搭建之MyEclipse10+jdk1.8+tomcat8环境搭建详解