2

Cでは、行と文字の位置に関して、コマンドラインインターフェイス画面の周りで非表示のカレットを移動できることを思い出しました。つまり、プログラムで画面上の任意の場所に任意のテキストを印刷できます。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で同等のメソッドがありますか?

4

2 に答える 2

5

JCursesncurses ( CからのライブラリのJavaポート)は1つの可能性です

于 2011-02-05T10:13:03.403 に答える
3

これを行う機能は、言語ではなく、端末のプロパティです。したがって、原則として、十分な機能を備えたターミナルエミュレータに接続している場合は、もちろん可能です。

ncursesのようなライブラリの目的は、端末に依存するカーソルの動きなどの厄介な詳細を抽象化することです。ncursesのようなものは必要ありません。ターゲット端末に適切なコードを、いつでも直接送信できます。

「Javaに同等の方法がありますか」とは、端末に依存しない抽象化も提供できるライブラリがあるということですか?はい(他の回答を参照してください)。しかし、JVMへのすべてのホストシステムにVT100エミュレーターを提供させるものは何もありません。たとえば、Windowsで頑張ってください。この意味で、Javaの2Dグラフィックスは、ターミナル環境よりも普遍的です。

于 2011-02-05T10:56:59.280 に答える