使用java中的Scanner类关注用户输入

时间:2012-02-05 07:37:26

标签: java

使用Scanner对象时,是否可以确保光标始终聚焦在控制台中?例如,当我运行我的程序时如果我没有在控制台中单击并开始输入我的输入最终会在我的程序代码中间,如果我没有注意的话。

Scanner s = new Scanner(System.in);
String name = s.nextLine(); 
System.out.print("Enter your name")

所以,当我运行这个程序时,我会在控制台中输入你的名字,我想自动将光标聚焦,准备在发送结束时获取用户信息。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

不,这是不可能的,至少不是一般的。 Scanner与控制台完全无关(它可能是从套接字或文件中读取输入),即使它是从控制台读取,它也无法控制光标位置。

java.awt.Robot之类的东西会让你控制光标的能力有限(通过鼠标点击),但它会非常特定于环境(如果用户移动控制台怎么办?如果它们甚至没有在IDE /从命令行?)

你正在解决一个你不需要解决的问题,并且在一个不应该认识到问题的水平上(如果有的话,在环境配置中解决这个问题,而不是在程序逻辑中解决这个问题。)

答案 1 :(得分:1)

正如AKJ所说,不专注于控制台,完全取决于IDE。 至于你的代码,它将首先等待用户输入,然后提示用户。因此,您可以交换第二行和第三行代码。

Scanner s = new Scanner(System.in);
System.out.print("Enter your name");
String name = s.nextLine();