1

サーバーをテストするためのボットプログラムがあります。いずれかのキーが押された場合にループを終了したいのですが、キーが押されるまで停止して待機したくありません。したがって、キーボードのいずれかのキーが押されるまで、ループは実行され続けます。

これは私が今それをやろうとしている方法ですが、うまくいきません

        if (System.in.available()>0)
        {
            System.out.println("key pressed");
            break; // exit loop
        }
4

1 に答える 1

1

オプションは次のとおりです。

  • GUI ウィンドウを作成します。キー イベント リスナーを介して awt/swing ウィンドウから非同期のキー イベントを受け取ることができます。

    ここで最後の回答のコード サンプルを参照してください。

  • プログラムに別のスレッドを作成して、Enter キーが押されるのを待ってから、メイン ループ スレッドに終了を通知します。

  • jInputjLineなどのネイティブ ライブラリを使用します (または、jni/jna を使用して独自のより単純なライブラリを作成します)。

    これにより、ネイティブ OS の非同期キー処理に接続できますが、その場合でも、最初に配置されているウィンドウ システムに微妙な依存関係があることがよくあります。

于 2012-04-14T13:58:00.743 に答える