Нажмите Anykey в Java с помощью BufferedReader - PullRequest
4 голосов
/ 15 сентября 2011

Как определить ввод с клавиатуры, когда пользователь нажимает любую клавишу, а затем делает метод что-то / повтор, если только кнопка выхода без свинга / awt?

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

Ответы [ 4 ]

1 голос
/ 15 сентября 2011

Нет способа обнаружить KeyPress в Java с помощью консоли, я думаю.Хотя есть способ сделать это изначально, используя JNI.Вы можете получить пример с исходным кодом из здесь

Что касается непрерывного ввода до разрыва, вы можете сделать это с помощью простого цикла while:

while((input = in.readLine()) != null){
                System.out.println();
                System.out.print("What you typed in: " + input);
            }
0 голосов
/ 15 сентября 2011

Обратите внимание, кнопка выхода не является символом, который будет передан через System.in. Кроме того, вы используете метод readLine, поэтому, если пользователь введет «abc», а затем введет, ваша переменная anyKey будет содержать «abc».

В основном вам нужно прослушивать события на клавиатуре. Ознакомьтесь с этим уроком http://download.oracle.com/javase/tutorial/uiswing/events/keylistener.html.

0 голосов
/ 15 сентября 2011

попробуйте так

public void keyPressed(KeyEvent e) {
    while(!e.keyCode == Keyboard.ESCAPE) {
          //do something
     }
}
0 голосов
/ 15 сентября 2011

Как насчет простого цикла:

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

Не уверен, что такое строковое представление escape-символа. Попробуйте показать это, используя System.out.println (любой ключ) и введя его в свой код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...