2011-09-15 4 views
4

ユーザーがanykeyを押した後にキーボード入力を検出する方法と、何か/繰り返し方法です。BufferedReaderでJavaのAnykeyを押してください

public static void isChecking(String x)throws Exception { 

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
    String anykey = null; 
    System.out.print("Press Anykey to Continue : "); 
    anykey = br.readLine(); 

    //if pressanykey 
    main(null); //call main class 
    //if escape button 
    System.out.println("Good Bye "); 
    System.exit(1); 


} 

おかげ
MRizq

+0

「がAnyKey」ですか? –

+0

エスケープキー – MRizq

答えて

1

この方法を試してみてください。ただし、JNIを使​​用してネイティブに行う方法があります。あなたが壊れるまであなたが連続入力についてhere

からソースコードと例を得ることができ、あなたがそれを行うことができ、単純なwhileループ:

while((input = in.readLine()) != null){ 
       System.out.println(); 
       System.out.print("What you typed in: " + input); 
      } 
+0

keycode!= '27' //エスケープ:D – MRizq

0

どのように単純なループについて:エスケープ文字の文字列表現が何であるかを

boolean escapeIsNotPressed = true; 
while (escapeIsNotPressed) { 
    anyKey = br.readLine(); 
    if (anyKey.equals(espaceCharacter)) { 
     escapeIsNotPressed = false; 
    } else { 
     main(null) 
    } 
} 

わかりません。 System.out.println(anykey)を使用してコードを表示し、コード内にそれを導入してみてください。

0

エスケープボタンは、System.inを介して渡される文字ではありません。さらに、readLineメソッドを使用しているので、ユーザーが "abc"と入力してから、anyKey変数に "abc"が含まれているとします。

基本的には、キーボードのイベントを聴くことが必要です。このチュートリアルhttp://download.oracle.com/javase/tutorial/uiswing/events/keylistener.htmlをチェックしてください。

+0

おかげで兄弟...最後に、私はキーストーンと一緒に働くためにスイングを使用しました。 – MRizq

0

は、私が推測するコンソールとJavaでKeyPressイベントを検出する方法はありません

public void keyPressed(KeyEvent e) { 
    while(!e.keyCode == Keyboard.ESCAPE) { 
      //do something 
    } 
} 
関連する問題