Rozważam napisanie pewnego programu w Java działający w konsoli. Wcześniej taki sam program napisałem w C#. Oprócz samego pisania tekstu potrzebowałbym odczytu naciśnięć klawiszy. Nie chodzi o napisanie tekstu i naciśnięcie Enter, tylko o reakcję na każde naciśnięcie klawisza. Wszystko, co znalazłem w internecie sprowadza się tak naprawdę do dwóch wariantów tego, co napisałem. Okazuje się, że po uruchomieniu tego w Linux działa tak, że jak się naciska litery, to nic się nie dzieje, a jak się naciśnie Enter, to wypiszą się numery wszystkich dotychczas naciśniętych liter.
package testcon;
import java.io.Console;
public class testcon{
public static void main(String[] args)
{
Console console = System.console();
if (console == null)
{
System.out.println("No console: non-interactive mode!");
System.exit(0);
}
int Variant = 1;
while (true)
{
try
{
int Chr = 0;
if (Variant == 1)
{
Chr = System.in.read();
}
if (Variant == 2)
{
Chr = console.reader().read();
}
System.out.println(">" + Chr + "");
}
catch (Exception E)
{
System.out.print("*");
}
}
}
}
W jaki sposób w Java można odczytać klawisz? Chodzi o odpowiednik funkcji Console.Readkey()
z C#.