ユーザーのキーストロークの監視: 継続的なキーストロークの認識を解き放つ
Java プログラミングの領域では、ユーザー入力を常に監視することが重要です。さまざまなアプリケーション。リアルタイムでキー押下を検出して反応する必要があるため、一般的な質問が生じます: 特定のキーが押されているかどうかをどのように判断すればよいでしょうか?
疑似コードとされているものに反して、Java はキーストローク検出に異なるアプローチを採用しています。 。キー押下を直接チェックするのではなく、KeyEvent をリッスンすることに重点を置きます。この戦略を実装することで、目的のキーのステータスを監視するカスタム方法を作成できます。
これを実現するために、KeyEventDispatcher を使用します。このユーティリティを使用すると、キーボード イベント ストリームにフックして特定のキーを監視できるようになります。ディスパッチャの実装内では、ターゲット キーの状態を細心の注意を払って追跡し、キーが押されたときまたは放されたときに適切なフラグを設定します。
この概念を説明するために実際の例を詳しく見てみましょう。
import java.awt.KeyEventDispatcher; import java.awt.KeyboardFocusManager; import java.awt.event.KeyEvent; public class IsKeyPressed { private static volatile boolean wPressed = false; public static boolean isWPressed() { synchronized (IsKeyPressed.class) { return wPressed; } } public static void main(String[] args) { KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher() { @Override public boolean dispatchKeyEvent(KeyEvent ke) { synchronized (IsKeyPressed.class) { switch (ke.getID()) { case KeyEvent.KEY_PRESSED: if (ke.getKeyCode() == KeyEvent.VK_W) { wPressed = true; } break; case KeyEvent.KEY_RELEASED: if (ke.getKeyCode() == KeyEvent.VK_W) { wPressed = false; } break; } return false; } } }); } }
この例では、「W」キーの状態を維持する IsKeyPressed という名前のクラスを導入します。揮発性ブール変数を使用して、スレッドの可視性とこの状態への同期アクセスを確保します。
これで、次のコードを使用して、「W」キーが押されているかどうかを簡単に確認できます:
if (IsKeyPressed.isWPressed()) { // Perform your desired action }
この手法をキーとその状態のマップに拡張することで、必要なキーを動的に監視するユニバーサル isPressing 関数を簡単に実装できます。これにより、Java アプリケーションはユーザー入力に常に対応できるようになり、リアルタイムでの迅速かつ正確な応答が可能になります。
以上がJavaで特定のキーが押されたかどうかを検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。