2012-09-13 2 views
0

Java에서 사용자가 "누를 때" 을 누를 가능성이 있으며 반환 할 때가 아닐까요? 사용자가 다음 ABC를 쳐서 경우Truly Interactive command-line

따라서, 예를 들어, 프로그램이 (도달 스트림의 끝)이 아닌, 후, 그는 수익을 누르면이 끝나는 내가 원하는 Ctrl 키 + Z을했다.

+0

가능한 복제본 : http://stackoverflow.com/questions/811851/how-do-i-read-input-character-by-character-in-java? –

+0

사용자 상호 작용을들을 수 있도록 선만있는 GUI 응용 프로그램을 만들 수 있습니다. –

+1

가능한 복제본 [Java에서 콘솔에서 단일 문자를 읽는 방법 (사용자가 입력 할 때)?] (http://stackoverflow.com/questions/1066318/how-to-read-a-single-char- 콘솔에서 자바에서 사용자 유형과 마찬가지로) – Neil

답변

3

을 누르면 Windows에서 스트림을 실제로 끝내지 않습니다. Ctrl + Z; 라인을 계속 편집 할 수 있으며 Return을 누르면 응용 프로그램은 스트림의 끝 부분 만 볼 수 있습니다.

이 유닉스에 약간의 차이입니다 Ctrl 키 + D (줄 바꿈없이) 응용 프로그램에 현재의 버퍼 라인을 보내며에 의해 빈 버퍼를 보낼 때 응용 프로그램은 스트림의 끝을 인식 만합니다 중 하나 반환 후 또는 다른 Ctrl 키 + DCtrl 키 + D을 누르면.

: Windows에서는 SetConsoleMode 기능을 사용하여 단일 문자를 읽을 수 있습니다. 나는 당신이 그것을 어떻게 부르 느냐에 관해 명확히하지 않고있다. SetConsoleMode

  • 편집를 호출하는 실행 프로그램에서 프로그램을 감싸 SetConsoleMode
  • 호출하는 프로그램을 호출 SetConsoleMode에게
  • 를 호출하는 DLL에

    1. 통해 JNI : 세 가지 선택이있을 표시 사용 JNA가 SetConsoleMode를 호출합니다.
  • +0

    예. 고마워하지만 내 질문의 일부만 대답 해. 키를 누를 때 Java가이를 감지하는 것은 불가능합니다. – xdevel2000