Java: чтение ключа из консоли без нажатия клавиши ввода
Я хочу прервать программу, когда пользователь нажимает определенную клавишу. Я пробую код ниже, но он работает только с клавишей ввода.
java.io.InputStreamReader reader = new java.io.InputStreamReader(System.in);
boolean b = false;
while(!b)
{
try{
if ( reader.ready())
{
// read a character and process it
System.out.println("key pressed");
b = true;
}
}
catch (java.io.IOException ioex)
{
System.out.println("IO Exception");
}
// edit, lets not hog any cpu time
try
{
Thread.sleep(50);
System.out.println("nop yet");
}
catch (InterruptedException ex)
{
// can't do much about it can we? Ignoring
System.out.println("Interrupted Exception");
}
}
Эквивалент в C# (рабочий):
ConsoleKeyInfo k1 = new ConsoleKeyInfo('T', ConsoleKey.T, false, false, false);
ConsoleKeyInfo k = Console.ReadKey(false);
if (k== k1)
{
Environment.Exit(1);
}
Изменить 1:
Я пробовал с потоками и этим списком, но тоже не работает.
public void keyTyped(KeyEvent e)
public void keyPressed(KeyEvent e)
public void keyReleased(KeyEvent e)