2011-08-05 2 views
7

사용자가 특정 명령을 입력 할 수있는 위치를 묻는 사용자 지정 명령이 표시되는 콘솔 기반 Java 응용 프로그램을 작성 중이며 입력하는 동안 앱의 자동 완성 기능을 구현하고 싶습니다. 명령, 사용자가 Tab 키를 누르면 명령이 완료되어야합니다. 이 기능은 Linux 명령 프롬프트의 자동 완성과 유사합니다.콘솔 앱의 탭 기반 자동 완성

자바 콘솔 앱에서는 TAB을 제어 할 수 없으며 TAB을 누르면 기본적으로 8 칸이 추가됩니다. TAB이 렌더링을 위해 사용되지 않고 내 앱이 TAB을 자동 완성으로 대체 할 수있는 트릭이 필요합니다.

미리 감사드립니다.

+0

RHQ 프로젝트와 그것의 CLI를 확인하십시오. 자동 완성이라는 좋은 의미가 있습니다. http://git.fedorahosted.org/git/?p=rhq/rhq.git;a=tree;f=modules/enterprise/remoting/cli;h=ba5c185774538696525b6c05c3777964f5dd606c;hb=HEAD –

+0

안녕하세요. GJ, 전 매우 기본적인 질문. 콘솔 문자열을 어떻게 조작합니까? String Buffer를 사용합니까? 디자인 결정을 공유 할 수 있습니까? –

답변

7

Java-Readline 또는 jline2과 같은 라이브러리를 사용해보세요.

+0

현재 개발중인 유일한 버전은 [jline3] (https://github.com/jline/jline3)입니다. –

0

picocli 자바 명령 줄 파싱 라이브러리는 최근에 자동 완성 기능을 추가했습니다.

사용 도움말 메시지에서 ANSI 색상 및 스타일을 사용하는 방법을 좋아할 수도 있습니다.

enter image description here

면책 조항 : 나는 저자 따라서 편견입니다.