Tak, jest taka możliwość: System.in
oraz System.out
to zwykłe strumienie i możesz na nich pracować przy pomocy tych samych narzędzi, co np. przy czytaniu danych z pliku. Wtedy można napisać taki kawałek kodu, który zaczeka na pojawienie się na wejściu dowolnego znaku i od razu przekaże Ci wtedy sterowanie.
Natomiast jeśli chodzi o rysowanie menu, to muszę Cię trochę rozczarować. Da się to zrobić, ale wyłącznie poprzez wysyłanie odpowiednich kodów sterowania terminalem na System.out
(zgodnych ze specyfikacją ANSI X3.64). Java nie posiada żadnych wbudowanych narzędzi do obsługi tekstowego ekranu a'la karty graficzne z lat 80-tych (np. 80x25, swobodny dostęp do komórek), bo po co?
Znalazłem jedną bibliotekę inspirowaną starym tekstowym systemem okien Turbo Vision autorstwa Borlanda i zgodnie z informacjami na stronie projektu, rendering jest tam oparty albo o pisanie na standardowe wyjście System.out
, albo o... emulację trybu tekstowego przy pomocy Swinga: https://github.com/klamonte/jexer