打字遊戲之輸入框功能的實現

2021-10-07 18:56:30 字數 1361 閱讀 9375

目錄及原始碼鏈結

①輸入三位數自動與螢幕中顯示的數字比較,若相同則消除並重新生成數字,記錄得分

②輸入空格暫停,暫停時輸入任意字元繼續遊戲

新建乙個jpanel,並在其中新增乙個jtextfield來獲取輸入的內容。

往jtextfield中新增乙個繼承介面卡抽象類的匿名內部類來監聽鍵盤事件。

鍵盤監聽的方法有keypressed()、keytyped()、keyreleased()。

下面我先進行乙個測試,測試在這些方法中用文字框的gettext()獲取的文字框內容的差別:

先輸入數字4,再輸入數字5,

可見keypressed和keytyped會在你輸入的文字字元新增到文字框之前呼叫,因此,為了要達到我們需要的目的,我就將長度比較的**寫在keyreleased方法中。

方法如下:每次往文字框鍵入內容監聽文字框內容的長度,若文字框長度大於等於3則用settext("")來清空文字框內容。

ps:

1.關於為何要大於等於三而不是單純等於三的原因,是被我乙個******舍友試出來的,趁著鍵盤監聽不注意,對著輸入框一頓暴風輸入,結果如下:

他輸入的長度早比三大了,但是鍵盤***並不清空文字框輸入的內容,因此要提防這種輸入過快的情況,就需要將等於三改為大於等於三。

2.但是如果按照我的方法將**都新增到keyreleased中,會出現以下問題:     一是如果你的輸入速度過快,會出現無法識別的現象。

二是如果你長按乙個數字,文字框的文字會一直增加到你放下按鍵才會清空,我試過在keypressed中輸入的文字檢測長度,但是效果不佳,也就放棄了,有興趣的讀者可以去想辦法解決看看。

當每次輸入長度大於等於三時,獲取文字框輸入的內容,然後與之前建立的字元陣列進行比較,若相同,則用講過的生成隨機數的方法再生成乙個隨機數(記得保證首位與其他的相同,而且要將其縱座標置為原來的初始下落位置)

if

(in.

gettext()

.length()

>=3)

num[i]

= integer.

tostring((

int)

(math.

random()

*900

+100))

;while

(true)}

break;}

}}

js實現輸入框輸入的自動匹配功能

完成輸入框輸入的自動匹配功能。參考 這裡增加了和輸入拼音相對應的中文匹配。如果能進一步完善,多謝指教。核心js 如下,demo見附件。輸入框的自動匹配核心控制類 param fixdom 存放用於匹配的值的div物件 function inputautofix aconfig var canfix ...

打字遊戲之閃爍功能的實現

目錄及原始碼鏈結 當按開啟閃爍按鈕時,四列數字會進行閃爍 每隔一段時間消失一段時間,然後再出現一段時間 效果如下 1.閃爍的原理 要讓數字發生閃爍,其實只要設定乙個記錄時間的變數,每次在run函式結束後記錄乙個結束時間,然後看看經過多少時間,如果時間滿足一定條件,則繪出數字,否則,不繪出數字,這樣子...

QT IP輸入框的實現

流程圖 我首先在xx.ui介面中畫了四個lineedit 分別取名為 le ip 1,le ip 2,le ip 3,le ip 4 做輸入ip位址用,限定了最大輸入長度為3 三個label 輸入點 最外面的框是乙個容器frame 遇到的問題 解決方法 只能採取笨辦法判斷是哪個lineedit發出訊...