我正在用 Java 编写一个简单的控制台应用程序 (80x24)。
控制台有
gotoxy(x,y)
等效项吗?
如果通过 Gotoxy(x,y),您想将光标重新定位在控制台上的特定位置,通常可以使用 VT100 控制代码来执行此操作。请参阅 http://www.termsys.demon.co.uk/vtansi.htm。
做类似的事情
char escCode = 0x1B;
int row = 10; int column = 10;
System.out.print(String.format("%c[%d;%df",escCode,row,column));
这应该将光标移动到控制台上的位置 10,10。
我认为 Java 中没有内置函数可以做到这一点。有一个名为 JCurses 的 Java 诅咒库,您可以使用它。
我发现Lanterna是一个非常好的图书馆。它不依赖于任何本机库,而是 100% 在纯 Java 中运行。
它提供了一个
Screen
类,允许基于坐标系输出文本。对于具有图形环境的操作系统,它使用基于 Swing 的终端仿真器。不幸的是,您无法在 Windows 上强制使用终端模式,因此如果您确实需要终端,请使用其他答案中的解决方案之一。
我认为最简单的方法是使用 ANSI 转义序列。
对于这个特定操作,我们将使用转义序列
H
,移动到点 x,y 我们将打印到屏幕 ESC x;yH
。System.out.print("\u001B" + x + ";" + y + "H");