将控制台光标移动到指定位置

问题描述 投票:0回答:5

我正在用 Java 编写一个简单的控制台应用程序 (80x24)。

控制台有

gotoxy(x,y)
等效项吗?

java console-application
5个回答
41
投票

如果通过 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。


8
投票

我认为 Java 中没有内置函数可以做到这一点。有一个名为 JCurses 的 Java 诅咒库,您可以使用它。


4
投票

如果没有拉入控制台

curses
样式库......

您可以尝试javacurses,看看是否对您有帮助。


4
投票

我发现Lanterna是一个非常好的图书馆。它不依赖于任何本机库,而是 100% 在纯 Java 中运行。

它提供了一个

Screen
类,允许基于坐标系输出文本。对于具有图形环境的操作系统,它使用基于 Swing 的终端仿真器。不幸的是,您无法在 Windows 上强制使用终端模式,因此如果您确实需要终端,请使用其他答案中的解决方案之一。


0
投票

我认为最简单的方法是使用 ANSI 转义序列
对于这个特定操作,我们将使用转义序列

H
,移动到点 x,y 我们将打印到屏幕
ESC x;yH

在 java 中将是
System.out.print("\u001B" + x + ";" + y + "H");

© www.soinside.com 2019 - 2024. All rights reserved.