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

JCurses(C 库的 Java 端口ncurses)是一种可能性

于 2011-02-05T10:13:03.403 回答
3

这样做的能力是终端的属性,而不是语言。因此,原则上,如果您连接到功能足够强大的终端仿真器,那么是的,当然这是可能的。

像 ncurses 这样的库的目的是抽象出依赖于终端的光标移动等的血腥细节。你不需要像 ncurses 这样的东西,你总是可以直接为你的目标终端发出适当的代码。

通过“Java 中是否存在等效方法”,您的意思是是否有库也可以为您提供与终端无关的抽象?是的(见其他回复)。但是没有什么能让每个主机系统向 JVM 提供一个 VT100 仿真器。例如,在 Windows 上祝你好运。从这个意义上说,Java 中的 2D 图形比终端环境更通用!

于 2011-02-05T10:56:59.280 回答