当用户在Java中键入时,是否有一种从控制台读取单个字符的简单方法?可能吗?我尝试过这些方法但他们都在等待用户按下回车键:
char tmp = (char) System.in.read();
char tmp = (char) new InputStreamReader(System.in).read ();
char tmp = (char) System.console().reader().read(); // Java 6
Run Code Online (Sandbox Code Playgroud)
我开始认为System.in在按下enter之前不知道用户输入.
G'day所有,
我有一个控制台项目,用户按下键盘方向键(非数字小键盘)来移动化身.我编码很难检查这些键的按键.在Pascal中,使用"readkey"和代码很容易,例如,#80用于向下按键.但是,我很难理解如何在Java中实现相同的功能,尽管我认为我理解使用System.in和BufferedInputStream.
任何人都可以帮我吗?非常感谢您的想法或提示.
使用 Java,是否可以在不使用 GUI 元素的情况下检测用户操作,例如按键、鼠标按钮和/或鼠标的屏幕位置?
如果是,我该如何实施?
否则,有什么选择?
我在这个问题上找到的唯一 StackOverflow 来源是这个问题,没有答案。
我在 StackOverflow 之外找到的关于这个问题的唯一来源指向“隐形 GUI”解决方案,希望是我真正想要避免的事情。
有没有办法检查用户是否在Java中的控制台窗口中键入?
如果我输入内容,我希望程序打印我输入的内容,否则打印出"无输入".
棘手的部分是我希望程序保持循环并打印出"无输入",然后当我输入"abc"时,它会立即打印出"abc".
我尝试使用Scanner来执行此操作:
Scanner s = new Scanner(System.in);
while(1){
if(s.hasNext()) System.out.println(s.next());
else System.out.println("No input");
}
Run Code Online (Sandbox Code Playgroud)
但是当我运行它时,如果我没有输入任何内容,程序就会卡在那里而不打印"无输入".实际上,从未打印过"无输入".
java ×5
keyboard ×2
console ×1
direction ×1
input ×1
key ×1
keylistener ×1
mouseevent ×1
swing ×1