Squ*_*ing 7 java windows console
首先让我澄清一下,我是编程新手,希望我使用正确的术语。
我使用该System.out.print("");方法打印到 Windows 控制台:
System.out.print("Backspace b"); //Output: Backspace b
因此,光标现在位于 b“后面”,如果我输入,则System.out.print("\b");光标向左移动 1,删除“b”。-->
System.out.print("Backspace b"); //Output: Backspace b
System.out.print("\bh"); //Output: Backspace h
现在,如果我输入的System.out.print("\n\bh");输出不是Backspace bh:
“ Backspace b
h”
我怎样才能让光标“向上”返回一行并到达最右边。某行有一个“减\n”或“非\n”,这样它就读作Backspace bh?
Java中有类似的东西吗?
小智 4
没有第三方库这是不可能的。我对此进行了广泛的研究,因为过去一周我一直在开发控制台游戏,据我所知,您可以需要 JNI、JNA、Jansi 或 JLine,而 JLine 则需要 Jansi 或 JNA。我个人推荐JLine,因为所有其他都需要您编写 C 或 C++。
如果你说想要上升这么多行,你可以用 JLine 做这样的事情。
import org.jline.terminal.Terminal;
import org.jline.terminal.TerminalBuilder;
import org.jline.utils.InfoCmp;
import java.io.IOException;
public class CursorStuff
{
static Terminal terminal;
public static void main(String[] args) throws IOException
{
terminal = TerminalBuilder.terminal();
System.out.println("1");
System.out.println("2");
System.out.println("3");
System.out.println("This line will get overwritten by the terminal path");
goBackLines(3);
System.out.println("back 3 overwriting 2");
}
public static void goBackLines(int remove)
{
for(int i = 0; i < remove; i++)
{
terminal.puts(InfoCmp.Capability.cursor_up);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3286 次 |
| 最近记录: |