私はレターバンクの文字を使って単語を作成するゲームを持っています。手紙が入力されるたびに、手紙アイコンが消えて消えてしまいます。私はすでにほとんどの機能を持っていますが、修正できないバグがいくつかあります。現在、私はKeyListener
を使用しており、キーイベントに基づいて入力/取出しアクションをフィルタリングしています。しかし、同時に複数のキーが押された場合に問題が発生します。JTextFieldのユーザコントロールを制限する
入力フィルタリングは私の主な問題ではなく、消去時に文字を銀行に戻しています。キャレットを完全に削除し、ユーザーがJTextField
の最後から/ backspaceに入力を追加できるようにする方法はありますか?また、ボタンのマッシングを正しく処理するためのヒントは、非常に高く評価されます。ありがとう!
注:スーパー・テキスト・トゥイストをプレイしたことがあるのなら、それは基本的に私が行っている推測方法のタイプです。
を示唆したよう
DocumentFilter
を使用し、あなたが今、それをやっている方法に添付されていますか?リスナーをJTextFieldに配置し、それが変更されるたびに、そこにあるすべてのテキストを利用可能な文字と照合することをお勧めします。プログラムは多くの作業を行いますが、それでも問題は解決できません。これにより、ユーザーは文字列に含まれていない文字を入力するのを止めることはできません。 –setEditable(false)でJTextFieldを編集できないようにし、KeyListener(またはキーバインディング)を使用して文字を追加または削除します。 –
@ dann.devは、たとえプログラムが追いついても非常に非効率的だと思われます。入力が変わるたびに複数の文字を再チェックするよりも、キーごとのレベルをチェックする方がよいでしょう。 – Max