2011-02-05 4 views
2

Cでは、コマンドラインインターフェイス画面の行と文字の位置に関して非表示のキャレットを移動できることを思い出しました。画面上の任意のテキスト。私たちはJavaでこのようなコマンドを持っていますか?例えば外部ライブラリを使用せずにJavaでコマンドラインインターフェイスの印刷位置を移動する

は、ここではCでの擬似コードです:

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; 
} 

これは、コマンドラインインターフェイスで次の出力が得られます:

launching program 

CCC 
BBB 
    AAA 

は、我々は使用せずにJavaで同等の方法はありますかこの場合、外部または第三者の図書館はありますか?

+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のようなライブラリの目的は、端末依存のカーソル移動などの細部の詳細を抽象化することです。にはのようなものが必要です。ターゲットに適切なコードを直接ターミナル。

「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。 VT100エスケープシーケンスではなく、WindowsコンソールAPIであるcom/en-us/library/windows/desktop/ms687410(v = vs.85).aspx) –

5

JCursesは(CからncursesライブラリのJavaのポート)これを行う能力は、端末ではなく、言語の特性である一つの可能​​性

関連する問題