【发布时间】:2013-10-11 16:58:00
【问题描述】:
我在这方面已经有一段时间了,在过去的三天里,我一直在互联网上寻找有效清除 Java 控制台的方法。
我看到它“完成”的方式
这边
for(int x = 0; x!=100; x++){
System.out.println();
} 糟透了,因为您可以向上滚动并再次查看打印的报表。
Console.Clear(); 和它的所有变体对我都不起作用。
Runtime.getRuntime().exec("cls"); 在我尝试使用它的任何情况下都不起作用。
(我使用 JCreator 编写代码,我不知道这是否与我的问题有关)
这种方式 by joesumbody122,看起来很有趣:
private static void clearLine()
{
Console.Write(new string(' ', Console.BufferWidth - Console.CursorLeft));
}
和
private static void clearLine(int left, int top)
{
int pLeft = Console.CursorLeft;
int pTop = Console.CursorTop;
Console.setCursorPosition(left, top);
Console.Write(new string(' ', Console.BufferWidth - Console.CursorLeft));
Console.setCursorPosition(pLeft, pTop);
}
但遗憾的是,我无法让它为我工作。它给了我错误,他从控制台调用的所有方法都不存在。 java.io.*; 被导入他的方法专门清除了一行,所以如果有人可以让它工作,(再次,我使用 JCreator 编码,我不知道这是否与我的问题) 我可以看到它被循环清除所有行。
有什么方法可以让你不那么讨厌?
回到这个for(int x = 0; x!=100; x++){
System.out.println();
} 有没有办法阻止用户在命令行中向上滚动?将光标设置在提示符的左上角?这将使这种方法更加有用。
另一种理论
有没有办法简单地告诉 java 在一个命令行中停止打印,在另一个命令行中开始打印,然后关闭第一个的窗口,这样它似乎只清除了控制台,而是创建了一个全新的控制台?过去两个小时我一直在思考这个问题,理论上它会起作用,但我不知道这样做的代码是否存在。
【问题讨论】:
-
总有一个选项可以创建(一个简单的)带有swing的控制台来输出/输入你的程序。
-
@arynaq 是的,我知道,但我希望将它留在控制台中,我喜欢它的外观。
-
您说的是命令行 Java 应用程序吗?什么平台(Linux、Windows、...)?
-
@ct_ 是的,Windows 7 上 JCreator 中的基本 Java 应用程序
标签: java console console-application