2011-02-05 2 views
2

C에서는 줄과 문자 위치와 관련하여 명령 행 인터페이스 화면에서 보이지 않는 캐렛을 이동할 수 있다는 것을 상기했습니다. 이는 프로그램 인쇄를 할 수 있음을 의미합니다. 화면의 아무 곳이나 텍스트. 우리는 자바에서 그런 명령을 가지고 있습니까?외부 라이브러리를 사용하지 않고 Java에서 명령 행 인터페이스의 인쇄 위치를 이동하십시오.

int main(){ 
    printf("launching program\n"); 
    moveTo(4,3); //move to line 4 at character index 3 on the screen. 
    printf("AAA"); 
    moveTo(3,0); //move to line 3 at character index 0 on the screen. 
    printf("BBB"); 
    moveTo(2,1); //move to line 2 at character index 1 on the screen. 
    printf("CCC"); 
    return 0; 
} 

이 명령 줄 인터페이스에서 다음과 같은 출력 줄 것입니다 : 예를 들어

, 여기에 C에서 의사입니다

launching program 

CCC 
BBB 
    AAA 

을 우리가 사용하지 않고 자바에서 동등한 방법이 있습니까 이 경우 외부 또는 제 3 자 라이브러리는 무엇입니까?

+1

http://stackoverflow.com/questions/439799/whats-a-good-java-curses-like-library-for-terminal-applications – sarnold

+1

가능한 콘솔 복제본 [Java gotoxy (x, y) ] (http://stackoverflow.com/questions/1001335/java-gotoxyx-y-for-console-applications) –

답변

2

이 터미널의 속성이 아닌 언어 수행하는 기능입니다. 그래서 원칙적으로 충분히 유능한 터미널 에뮬레이터에 연결되어 있다면 물론 가능합니다.

ncurses와 같은 라이브러리의 목적은 터미널 종속 커서 이동 등의 세부적인 내용을 추상화하는 것입니다. 이 필요합니다. ncurses와 같은 것이므로 항상 대상에 맞는 코드를 직접 내보낼 수 있습니다. 단말기.

"Java에는 동일한 메소드가 있습니까?"라는 말은 터미널에 독립적 인 추상화를 제공 할 수있는 라이브러리가 있습니까? 예 (다른 응답 참조). 그러나 JVM에 대한 모든 호스트 시스템이 VT100 에뮬레이터를 제공 할 것은 없습니다. 예를 들어, Windows에서 행운을 비네. 이러한 의미에서 Java의 2D 그래픽은 터미널 환경보다 보편적입니다!

+1

적어도 커서를 이동하는 데 사용되는 실제 응답 코드를 언급 할 수 있습니다. 많은 사람들이 큰 도서관을 필요로하는 거대한 프로그램에 참여하고있는 것은 아닙니다. –

+0

[JCurses] (http://javacurses.cvs.sourceforge.net/viewvc/javacurses/jcurses/src/native/WinToolkit.c?view=markup)는 ['WriteConsoleOutputCharacter'] (https://msdn.microsoft. com/en-us/library/windows/desktop/ms687410 (v = vs.85) .aspx), VT100 이스케이프 시퀀스가 ​​아닌 Windows 콘솔 API –

5

JCurses (C에서 ncurses 라이브러리의 자바 포트) 일 가능성