Java 当不请求输入时,控制台中会显示键入的文本,如何停止此操作?
我正试图在Eclipse中使用Java制作一个简单的基于文本的游戏,一切都很正常,直到它随机开始允许您在程序中的任何点输入,而不仅仅是在使用Java 当不请求输入时,控制台中会显示键入的文本,如何停止此操作?,java,eclipse,console,Java,Eclipse,Console,我正试图在Eclipse中使用Java制作一个简单的基于文本的游戏,一切都很正常,直到它随机开始允许您在程序中的任何点输入,而不仅仅是在使用扫描仪请求输入时。我发现这真的很奇怪,并尽我所能去修复它,但没有任何效果,所以现在我回到了原点。当我运行我的程序时,我可以在控制台的任何地方键入,它实际上会出现,我不希望这种情况发生。这是我的前几行代码,这里显然没有扫描仪,所以我不明白可能是什么问题 这在我所有的项目中都会发生,我真的很想回到编码上来,让它工作起来 import java.util.Scan
扫描仪
请求输入时。我发现这真的很奇怪,并尽我所能去修复它,但没有任何效果,所以现在我回到了原点。当我运行我的程序时,我可以在控制台的任何地方键入,它实际上会出现,我不希望这种情况发生。这是我的前几行代码,这里显然没有扫描仪,所以我不明白可能是什么问题
这在我所有的项目中都会发生,我真的很想回到编码上来,让它工作起来
import java.util.Scanner;
public class Game {
public static void main(String[] args) throws InterruptedException {
String com = "Computer: ";
System.out.print(com +"H");
Thread.sleep(75);
System.out.print("i");
Thread.sleep(75);
System.out.println(".");
Thread.sleep(2000);
这是大多数控制台的正常行为;它不是来自Java或您的Java代码。当您在控制台中键入时,它会将您键入的字符回显给您 确实存在关闭回声的方法。将关闭它,直到您按Enter键。不幸的是,
Console
没有公开直接打开和关闭回声的功能,只是在请求输入行时
库可以使用Terminal.echo()打开和关闭它:
这是否正确可能取决于程序的运行方式;我还没有在Eclipse上尝试过
当我试着这样做时,我在回音关闭时键入的内容在下次打开回音时出现。再一次,正常的控制台行为。如果你在控制台中输入,它总是在听你说话。如果你不想这样,我在它周围找到了一个黑客,它至少工作了一两次:
// Skip over anything that's been typed in already.
// Re-implementing skip() with read(), because skip() can throw an "Illegal seek"
// error that read() won't.
System.in.read(new byte[System.in.available()]);
terminal.echo(true);
这是大多数控制台的正常行为;它不是来自Java或您的Java代码。当您在控制台中键入时,它会将您键入的字符回显给您
确实存在关闭回声的方法。将关闭它,直到您按Enter键。不幸的是,Console
没有公开直接打开和关闭回声的功能,只是在请求输入行时
库可以使用Terminal.echo()打开和关闭它:
这是否正确可能取决于程序的运行方式;我还没有在Eclipse上尝试过
当我试着这样做时,我在回音关闭时键入的内容在下次打开回音时出现。再一次,正常的控制台行为。如果你在控制台中输入,它总是在听你说话。如果你不想这样,我在它周围找到了一个黑客,它至少工作了一两次:
// Skip over anything that's been typed in already.
// Re-implementing skip() with read(), because skip() can throw an "Illegal seek"
// error that read() won't.
System.in.read(new byte[System.in.available()]);
terminal.echo(true);
在此代码中,scanner
在哪里使用?这是大多数控制台的正常行为;它不是来自Java或您的Java代码。当您在控制台中键入时,它会将您键入的字符回显给您,换句话说,您的Java代码没有做错任何事情。你不需要修复任何东西,即使你想修复,也没有任何东西可以修复。在这段代码中,scanner
的使用在哪里?这是大多数控制台的正常行为;它不是来自Java或您的Java代码。当您在控制台中键入时,它会将您键入的字符回显给您,换句话说,您的Java代码没有做错任何事情。没有什么需要修复的,也没有任何可以修复的东西,即使你想修复。谢谢,我想它可能不会与Eclipse一起工作,但如果它是正常的控制台行为,那么它就不会再困扰我了。谢谢你的帮助!谢谢,我想它可能不适用于Eclipse,但如果它是正常的控制台行为,那么它就不会再困扰我了。谢谢你的帮助!