当用户按任意键然后执行其他操作/重复方法时,如何检测键盘输入,除非没有swing / awt的退出按钮?
public static void isChecking(String x)throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String anykey = null;
System.out.print("Press Anykey to Continue : ");
anykey = br.readLine();
//if pressanykey
main(null); //call main class
//if escape button
System.out.println("Good Bye ");
System.exit(1);
}
由于<是/> Rizq
答案 0 :(得分:1)
我猜测无法用控制台检测java中的KeyPress。虽然有一种方法可以使用JNI本地完成。您可以从here
获取源代码示例关于连续输入,直到你中断,你可以用简单的while循环来完成:
while((input = in.readLine()) != null){
System.out.println();
System.out.print("What you typed in: " + input);
}
答案 1 :(得分:0)
一个简单的循环怎么样:
boolean escapeIsNotPressed = true;
while (escapeIsNotPressed) {
anyKey = br.readLine();
if (anyKey.equals(espaceCharacter)) {
escapeIsNotPressed = false;
} else {
main(null)
}
}
不确定转义字符的字符串表示形式是什么。尝试使用System.out.println(anykey)显示它并在代码中引入它。
答案 2 :(得分:0)
请注意,转义按钮不是将通过System.in传入的字符。此外,您正在使用readLine方法,因此,如果用户键入“abc”然后输入,则您的anyKey变量将包含“abc”。
基本上你需要做的是听一下键盘上的事件。查看本教程http://download.oracle.com/javase/tutorial/uiswing/events/keylistener.html。
答案 3 :(得分:0)
试试这种方式
public void keyPressed(KeyEvent e) {
while(!e.keyCode == Keyboard.ESCAPE) {
//do something
}
}