Zaczynam przygodę z javą, muszę zrobić pracę a nie potrafię zrobić dwóch rzeczy, proszę o pomoc.
1.Jak zrobić aby program dalej się wykonywał po naciśnięciu dowolnego klawisza bez ENTER
nie chodzi mi tutaj o Wej.readLine() bo tutaj zawsze trzeba enter nacisnąć.
2.Jak zrobić aby kontynuować działanie programu klawiszem "T" a przerwać "N" czyli coś w stylu:
Chcesz powtórzyć program T/N
Potrafię zrobić na zasadzie 1-Tak 2-Nie ale chcę aby to było na zasadzie wyboru T/N
mam nadzieję że napisałem zrozumiale.
Jeszcze raz proszę o pomoc.
0
0
Ad. 1) W aplikacji konsolowej nie da się.
Ad. 2)
String line = Character.toString((char)System.in.read());
if("T".equalsIgnoreCase(line)) cosTam();
else cosTamInnego();
0
-
Oczywiście, że możesz użyć read oraz readLine - tyle, że w potrzebujesz skanowania klawiatury niezależnego od systemu standardowego wejścia i wyjścia. Tu masz rozwiązanie, które już ktoś zrobił
http://jline.sourceforge.net/ -
Odczyt klawiszy czy znaków T i N nie różni się niczym od 1 czy 2. Po prostu sprawdzasz otrzymane z klawiatury znaki lub kody klawiszy i zależnie od ich wartości odpowiednio reagujesz. Większość takich sprawdzeń robi się pętlą. Coś w tym stylu:
do
{
pytanie(); //pierwsze lub powtórzone
int kodZnaku = odczytKlawiatury(); //i tu jest problem z Javą, żeby był to odczyt niebuforowany
//w przypadku odczytu możemy znaków utożsamić małe i duże litery lub interpretację strzałek
//z różnych części klawiatury np. WSAD jako UP, DOWN, LEFT, RIGHT lub z numerycznej
//za pomocą Character.toLowerCase() lub .toUpperCase() lub własnego kodu
if(kodZnaku == 't')
rezultat = true;
else if(kodZnaku == 'n')
resultat = false;
else if(kodZnaku == ESC)
rezultat = false;
//...
else continue;
break;
} while(true);